我需要UIProgressView作为一个iOS 7应用程序的UITableView单元的一部分.我在单元格右侧的代码中添加了UIProgressView,如下所示:
_progressBar = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault]; _progressBar.translatesAutoresizingMaskIntoConstraints = NO; [self.contentView addSubview:_progressBar]; [self.contentView addConstraint:[NSLayoutConstraint constraintWithItem:_progressBar attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeCenterY multiplier:1.0 constant:0.0]]; [self.contentView addConstraint:[NSLayoutConstraint constraintWithItem:_progressBar attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeRight multiplier:1.0 constant:-10.0]]; [_progressBar addConstraint:[NSLayoutConstraint constraintWithItem:_progressBar attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:60.0]]; [_progressBar addConstraint:[NSLayoutConstraint constraintWithItem:_progressBar attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:12.0]];
但是,显示UIProgressView有点奇怪.当进度为零时,UIProgressView对象如下所示:
当我将进度值设置为0.5时,UIProgressView在左侧变为矩形,并在右侧保持圆角矩形:
当我将进度设置为0.98时,看起来像这样:
任何想法如何通过简单地设置进度值来填充UIProgressView,并保持整个时间的圆角矩形(或矩形)形式的元素?或者,如果不添加自定义图形或覆盖UIProgressView,这是不可能的?
非常感谢提前和最好的问候.
解决方法
今天有同样的问题,修复不是那么难:)
在界面构建器中添加一个UIView,其大小与UIProgressView完全相同.在这个新的UIView中添加你的UIProgressView.
如果你想要角落,请为你的UIView做以下事情:
1)将cornerradius设置为高度的一半(例如,30px高度进度条表示15px角半径UIVIew))
myView.layer.cornerRadius = 15;
2)将掩码设置为边界
myView.layer.masksToBounds = TRUE;
3)将剪辑设置为边界,以便UIView不会出现任何问题
myView.clipsToBounds = TRUE;
现在你有一个圆形的UIProgressBar,你想要的高度.
如果您不想要圆角,只需以相同的方式添加UIView,但只将背景颜色更改为与UIProgressbar tracktint相同的灰色.
祝好运!
-Sjoerd