uer*_*ceg 8 iphone objective-c uiprogressview ios ios7
我需要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]];
Run Code Online (Sandbox Code Playgroud)
但是,显示UIProgressView有点奇怪.当进度为零时,UIProgressView对象如下所示:

当我将进度值设置为0.5时,UIProgressView在左侧变为矩形,并在右侧保持圆角矩形:

当我将进度设置为0.98时,看起来像这样:

任何想法如何通过简单设置进度值来填充UIProgressView,并保持整个时间的圆角矩形(或矩形)形式?或者,如果不添加自定义图形或覆盖UIProgressView,这是不可能的?
非常感谢提前和最好的问候.
Sjo*_*ors 19
今天有同样的问题,修复不是那么难:)
在界面构建器中添加一个UIView,其大小与UIProgressView完全相同.在这个新的UIView中添加你的UIProgressView.
如果你想要角落,请为你的UIView做以下事情:
1)将cornerradius设置为高度的一半(例如,30px高度进度条意味着15px角半径UIVIew))
myView.layer.cornerRadius = 15;
Run Code Online (Sandbox Code Playgroud)
2)将掩码设置为边界
myView.layer.masksToBounds = TRUE;
Run Code Online (Sandbox Code Playgroud)
3)将剪辑设置为边界,这样UIView就不会出现任何问题
myView.clipsToBounds = TRUE;
Run Code Online (Sandbox Code Playgroud)
现在你有一个圆形的UIProgressBar,你想要的高度.
如果您不想要圆角,只需以相同的方式添加UIView,但只将背景颜色更改为与UIProgressbar tracktint相同的灰色.
祝好运!
-Sjoerd
供将来参考:我已经通过设置角半径来解决了这个问题
_progressView.layer.cornerRadius = 2.0;
Run Code Online (Sandbox Code Playgroud)
然后:
_progressView.clipsToBounds = YES;
Run Code Online (Sandbox Code Playgroud)
不需要UIProgressView的容器.
| 归档时间: |
|
| 查看次数: |
4805 次 |
| 最近记录: |