Cha*_* SP 61 iphone cocoa-touch uiprogressview ipad
我创建UIProgressView的nib.我想增加它的高度,但它固定为9.因为iPad我需要增加它的高度.怎么做?
提前致谢.
小智 169
使用CGAffineTransform更改尺寸:
CGAffineTransform transform = CGAffineTransformMakeScale(1.0f, 3.0f);  
progressView.transform = transform;
Log*_*gan 85
使用布局约束对我有用:

Sho*_*aib 26
放置这个来源
@implementation UIProgressView (customView)
- (CGSize)sizeThatFits:(CGSize)size {
    CGSize newSize = CGSizeMake(self.frame.size.width, 9);
    return newSize;
}
@end
orj*_*orj 12
只需在初始化后在代码中设置UIProgressView的帧即可.例如:
UIProgressView *progressView = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault];
// progressView's frame will be small/standard height
progressView.frame = CGRectMake(0, 0, 100, 20);
// Now the frame is set to my custom rect.
这对我在iOS 5上工作.虽然我使用自定义trackImage和progressImage.我的代码看起来像这样.请注意,我将progressView添加到另一个视图,并希望它与包含视图的大小相同,因此将框架设置为self.bounds.
_progressView = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault];
_progressView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
_progressView.trackImage = [[UIImage imageNamed:@"search-progress-track"] resizableImageWithCapInsets:UIEdgeInsetsMake(3.0f, 3.0f, 3.0f, 3.0f)];
_progressView.progressImage = [[UIImage imageNamed:@"search-progress"] resizableImageWithCapInsets:UIEdgeInsetsMake(3.0f, 3.0f, 3.0f, 3.0f)];
_progressView.frame = self.bounds;
[_progressView setProgress:0.5];
Mat*_*att 11
有一种简单的方法可以在Interface Builder中更改高度.无需代码,您的更改将显示在IB中.
在storyboard或xib中选择UIProgressView对象,选择Editor> Pin> Height.这将创建一个高度约束,并允许您在最左侧("使用")面板的"属性"检查器中更改其值.
小智 11
以下代码适用于最新的swift xCode:
var transform : CGAffineTransform = CGAffineTransformMakeScale(1.0, 6.0)
           progressView.transform = transform
Moh*_*our 10
斯威夫特3:
progressView.transform = progressView.transform.scaledBy(x: 1, y: 9)
Swift3
var transform : CGAffineTransform = CGAffineTransform(scaleX: 1.0, y: 6.0)
progressBar.transform = transform 
附录
如果您正在使用IBDesignable课程,可以在故事板中使用它进行调整:
@IBInspectable var progressBarHeight: CGFloat = 2.0 {
    didSet {
        let transform = CGAffineTransform(scaleX: 1.0, y: progressBarHeight)
        self.progressView.transform = transform
    }
}
小智 6
这是解决方案
您可以使用转换,但问题出现 - >当您更改设备的方向时,UIProgressView高度变为原始高度.
所以增加UIProgressView高度的最佳方法是
yourProgressView.progressImage=[UIImage imageNamed:@"image1.png"];
yourProgressView.trackImage = [UIImage imageNamed:@"image2.png"];
// IMPORTANT: image1/image2 height (in pixel) = height that you want for yourProgressView.
// no need to set other properties of yourProgressView.
谢谢
您还可以使用AutoLayout实现相同的外观,它可以在iOS 7.1中使用.只需添加一个等于您希望进度条高度的高度约束.有关更多详细信息,请查看此类似问题的答案.
对于iOS 7+,使用Core Graphics和CATransform3DScale来缩放该视图中的图层:
CATransform3D transform = CATransform3DScale(progressView.layer.transform, 1.0f, 3.0f, 1.0f);
progressView.layer.transform = transform;
确保在设置progressView框架之后执行此操作,而不是之前.
| 归档时间: | 
 | 
| 查看次数: | 62384 次 | 
| 最近记录: |