UIProgressView在iOS 7中显示问题

我需要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

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...