iOS 7中的进度视图高度

时间:2013-09-10 11:35:05

标签: iphone ios objective-c ios7 uiprogressview

我想在iOS 6及更低版本中增加进度视图的高度我正在使用外观方法

  UIImage *progressImage = [[UIImage imageNamed:@"sliderbk-progress.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 4, 0, 5)];
[[UIProgressView appearance] setProgressImage:progressImage];

但是现在在iOS7中这个代码不起作用我甚至尝试给出下面的代码但没有用。任何帮助都会有所帮助。感谢

[[UIProgressView appearance] setFrame:CGRectMake(20, 100, 280, 100)];

7 个答案:

答案 0 :(得分:57)

如果我正确理解了这个问题,听起来你想要增加iOS7中进度视图的高度,而以前在iOS6中使用的代码不再有效。

我最近必须解决类似的问题,我通过在Interface Builder中为进度视图添加约束并通过约束显式设置高度来实现此目的。此解决方案需要使用自动布局,因此请确保已打开。

height attribute

显示:大小检查器上的“高度”属性对于进度视图明显变灰并且无法更改 - 但是我已经在进度视图本身上定义了约束并将约束的高度设置为50点,实际上反映在IB中。

从我看到的iOS6 Progress Bars有一个静态高度值,所以如果你也想支持iOS6,那么就需要采用另一种方法。

答案 1 :(得分:47)

而其他人报告说CGAffineTransform()也可以正常工作:

[self.progressView setTransform:CGAffineTransformMakeScale(1.0, 3.0)];

答案 2 :(得分:17)

使用此代码: -

 CGAffineTransform transform = CGAffineTransformMakeScale(1.0f, 5.0f);
 progressView.transform = transform;

答案 3 :(得分:2)

这里已经回答了 How to increase height of UIProgressView

@implementation UIProgressView (customView)

- (CGSize)sizeThatFits:(CGSize)size 
{
   CGSize newSize = CGSizeMake(self.frame.size.width,9);
   return newSize;
}

@end

答案 4 :(得分:2)

以下是user3189408的 Swift 版本和Rushabh面向像我这样的新开发者和快速爱好者的优秀解决方案。经过iOS 7 + / Swift 2.0测试。

    progressView.transform = CGAffineTransformMakeScale(1.0, 5.0)

答案 5 :(得分:2)

Swift 3.x

progressView.transform = CGAffineTransform(scaleX: 1.0, y: 5.0)

答案 6 :(得分:0)

您可以注意到frame访问者无法设置appearance。您必须单独在每个进度视图上进行设置。

通常,根据进度条样式设置高度。

- (id)initWithProgressViewStyle:(UIProgressViewStyle)style; // sets the view height according to the style