UIProgressView在iOS 7.1中自定义跟踪和进度图像
iOS 7.1似乎已经打破了UIProgressView
的自定义图像属性。 现在用于成功定制进度视图的代码产生默认外观。
我在viewDidLoad
设置了一个样例项目:
self.progressView.frame = CGRectMake(self.progressView.frame.origin.x, self.progressView.frame.origin.y, self.progressView.frame.size.width, 9); UIImage *img = [UIImage imageNamed:@"progress_bar_fill.png"]; img = [img resizableImageWithCapInsets:UIEdgeInsetsMake(0, 4, 0, 4)]; self.progressView.progressImage = img; img = [UIImage imageNamed:@"progress_bar_empty.png"]; img = [img resizableImageWithCapInsets:UIEdgeInsetsMake(0, 4, 0, 4)]; self.progressView.trackImage = img;
我仍然得到默认的外观。 我已经通过并validationimg
是非零,如预期。 这是怎么回事?
更新:有一个OpenRadar为此,我也提交了我自己的一个示例项目完整的雷达。
更新2:正如下面的Axy所述,你必须添加这个让JEProgressView正常工作:
_progressBar.tintColor = [UIColor clearColor];
这非常烦人。 我没有find一种方法来解决这个问题,没有UIProgressView
子类。
无论如何,这里是我如何解决这个问题: https : //gist.github.com/JohnEstropia/9482567
您将不得不将UIProgressView
出现UIProgressView
为JEProgressView
,包括JEProgressView
和故事板中的那些。
基本上,你需要强制分配图像直接到UIProgressView
的孩子UIImageView
。
该子类是需要重写layoutSubviews
,根据图像大小调整layoutSubviews
的高度。
你是对的。 自从7.1在Xcode 5.1种子1中出现以来,这个错误一直存在。我提交(并重新提交)了Xcode 5.1的所有5个种子的相同错误,现在在Xcode 5.1上。 但苹果没有解决这个问题。
请提交这个bug! 你可以参考我的错误,如果你喜欢:15547259越多越好! 我认为这是严重的破坏,因为这意味着一个工作正常的应用程序现在被破坏(如果它使用进度视图和progressImage
)。
我使用了John Estropia的解决scheme,但是它显示了蓝色的色调条,覆盖了我的graphics效果。
我补充说
_progressBar.tintColor = [UIColor clearColor];
它很好。 感谢解决scheme的人。
你好朋友我已经使用下面的代码在我的应用程序中添加UIProgressView:
UIProgressView *progressView; progressView = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault]; progressView.progressTintColor[UIColor colorWithRed:187.0/255 green:160.0/255 blue:209.0/255 alpha:1.0]; [[progressView layer]setCornerRadius:10.0f]; [[progressView layer]setBorderWidth:2.0f]; [[progressView layer]setMasksToBounds:TRUE]; progressView.clipsToBounds = YES; [[progressView layer]setFrame:CGRectMake(30, 295, 260, 25)];[[progressView layer]setBorderColor[UIColor whiteColor].CGColor]; progressView.trackTintColor = [UIColor clearColor]; [progressView setProgress: (float)count/15 animated:YES];
希望代码对你有所帮助,我在这里find了: 代码的来源
我试图从John Estropia实现JEProgressView文件,但是它不起作用。 我一定是做错了 – 但是我对此有点新鲜。 有人可以解释如何做到这一点? 我知道这可能是一个愚蠢的问题 – 但经过大量的谷歌search,我认为问是唯一的方法。
我也抓住了这个错误。 我试图解决它与UIProgressView属性玩,但没有结果。 上面贴出的John Estropia解决scheme也不适用于我,也许它不支持自动布局,所以我做了一个绕过这个bug的临时解决scheme。 https://github.com/ninjaproger/AKProgressView
对于我来说这适用于iOS版本7.1和以上的进度图像:
if ([[UIDevice currentDevice] systemVersion] >= 7) self.progressView.tintColor = [UIColor colorWithPatternImage:img];
使用Xcode5,现在可以使用Interface Builder
制作可resize的图像。 我们可以指定resize的方向和内容插入,并在界面生成器中select要被放置的区域。
要使用此function,您必须为要resize的图像使用Asset Catalog
。