【问题标题】:Why isn't UIProgressview progress bar resizable?为什么 UIProgressview 进度条不能调整大小?
【发布时间】:2012-05-31 02:07:29
【问题描述】:

来自 Bavarious 关于UIProgressViews here:的问题

我尝试实现 Dave DeLong 所说的内容,并且按照他在示例中展示的方式进行了所有操作,但是当我运行程序时,如果我尝试更改进度的值,我的进度条会变成拉伸的图像。然而,轨道图像完美地调整大小并沿轨道重复。出于某种原因,进度并没有沿着进度条执行此操作。

UIImage * load = [[UIImage imagedNamed:@"load.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 1, 0, 1)];
UIImage * track = [[UIImage imageNamed:@"track.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 1, 0, 1)]; 
[progressbar progressImage:load];
[progressbar trackImage:track];
[progressbar setProgress:0.5];

我尝试将图像变量从进度图像切换到轨道图像,以查看是否是无法调整大小的图像(不应该是因为它们是完全相同的图像,只是颜色不同) .除了当我这样做时,轨道图像再次完美调整大小并且进度图像是拉伸的图像。有谁知道为什么会发生这种情况?

【问题讨论】:

  • 请同时包含您正在使用的图片。
  • 尝试改变progressBarStyle。 UIProgressViewStyleDefault,UIProgressViewStyleBar,
  • @ElvisNunez 我试过了,没区别。

标签: objective-c xcode progress-bar uiprogressview


【解决方案1】:

您的可调整大小的帽子插图可能不应该是{0,1,0,1}。在您的情况下,它们看起来应该是 {0,0,0,0}UIEdgeInsetsZero

我剪掉了红色和蓝色的小方块:

...然后把它们扔进UIProgressView:

UIImage *red = [[UIImage imageNamed:@"red"] resizableImageWithCapInsets:UIEdgeInsetsZero];
UIImage *blue = [[UIImage imageNamed:@"blue"] resizableImageWithCapInsets:UIEdgeInsetsZero];

[pv setTrackImage:blue];
[pv setProgressImage:red];

当进度视图放置在 UI 上,progress 为 0.5,我得到了这个:

我觉得不错。

【讨论】:

  • 你是最棒的。谢谢哈哈,这是困扰我最长时间的问题。你知道我将如何实现条形末端的圆形效果吗?
  • @Seany242 您的图像会有圆形大写字母,并且左右大写字母插图将等于大写字母的半径。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多