在导航栏中将其用作titleView时,增加UIProgressView高度

时间:2014-05-20 15:46:20

标签: ios ios7 uiprogressview

我在导航项中使用进度视图(UIProgressView)作为titleView,以便它显示在我的导航栏中。无论我做什么,它在iOS 7.1中显得非常狭窄:

enter image description here

我讨厌这个版本的进度视图。怎么能让它更胖/更厚/更高?我已经尝试了所有建议的herehere。我已经尝试更改框架,添加转换,使用自定义子类,添加约束(这些只会导致崩溃)。我以前使用的技巧progressImagetrackImagebroken in iOS 7.1

这是我的代码(整个事情发生在代码中;我在这个项目中没有笔尖或故事板):

UIProgressView* prog = [[UIProgressView alloc] init];
self.prog = prog;
self.prog.progressTintColor = [UIColor colorWithRed:1.000 green:0.869 blue:0.275 alpha:1.000];
self.prog.trackTintColor = [UIColor darkGrayColor];
self.navigationItem.titleView = prog;

1 个答案:

答案 0 :(得分:10)

我以一种特别棘手的方式解决了这个问题。我们已经知道提供高度约束应该有效。但只是这样做会使我的应用程序崩溃。最后我有一个头脑风暴。我使用另一个视图作为我的titleView,并将进度视图放在其中。现在我能够应用适当的约束:

UIProgressView* prog = [[UIProgressView alloc] init];
self.prog = prog;
self.prog.progressTintColor = [UIColor colorWithRed:1.000 green:0.869 blue:0.275 alpha:1.000];
self.prog.trackTintColor = [UIColor darkGrayColor];
self.prog.translatesAutoresizingMaskIntoConstraints = NO;
CGFloat w = 150;
CGFloat h = 10;
[self.prog addConstraint:[NSLayoutConstraint constraintWithItem:self.prog attribute:NSLayoutAttributeWidth relatedBy:0 toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:w]];
[self.prog addConstraint:[NSLayoutConstraint constraintWithItem:self.prog attribute:NSLayoutAttributeHeight relatedBy:0 toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:h]];
UIView* v = [[UIView alloc] initWithFrame:CGRectMake(0,0,w,h)];
[v addSubview:self.prog];
[v addConstraint:[NSLayoutConstraint constraintWithItem:self.prog attribute:NSLayoutAttributeCenterX relatedBy:0 toItem:v attribute:NSLayoutAttributeCenterX multiplier:1 constant:0]];
[v addConstraint:[NSLayoutConstraint constraintWithItem:self.prog attribute:NSLayoutAttributeCenterY relatedBy:0 toItem:v attribute:NSLayoutAttributeCenterY multiplier:1 constant:0]];
v.clipsToBounds = YES;
v.layer.cornerRadius = 4;
self.navigationItem.titleView = v;

正如你所看到的,我也利用这个来为角落添加一些圆角。我认为结果很漂亮。

enter image description here