【发布时间】:2014-09-20 07:30:11
【问题描述】:
我正在使用代码通过将 UIImageView 的宽度减小到其原始值的 0.5 来调整其大小。 代码是
- (void)viewDidLoad
{
[super viewDidLoad];
self.allisonHall.newWidth = .5;
self.allisonHall.frame = CGRectMake(self.allisonHall.frame.origin.x,
self.allisonHall.frame.origin.y,
self.allisonHall.frame.size.width*self.allisonHall.newWidth,
self.allisonHall.frame.size.height);
self.allisonHall.contentMode = UIViewContentModeLeft;
self.allisonHall.clipsToBounds = YES;
NSLog(@"%f",self.allisonHall.frame.size.width);
}
NSLog 的结果是 140, .5*280 符合预期。 但是,在视图中 UIImageView 保持其原始宽度。 UIImageView 链接为
@property (weak, nonatomic) IBOutlet XYZdiningHall *allisonHall;
在视图控制器的 .h 文件中,其中 XYZdiningHall 是 UIImageView 的子类
UIImageView 的框架是否应该根据此代码进行更改,还是我需要调用另一个方法来触发更改?
【问题讨论】:
-
您的调整大小是微不足道的(它不依赖于任何变量)。如果你的 ImageView 是一个 IBOutlet,为什么不在故事板中改变它的大小呢?如果您坚持以编程方式执行此操作,则在
viewDidLoad之后可能会发生一些自动调整大小,因此您可以尝试将此代码放入viewDidAppear:。不要忘记致电[super viewDidAppear:] -
抱歉,size 变量不是微不足道的——我加入了一个幻数以使问题更加明确。调整大小因子由时间变量确定。但是,您的修复确实有效。非常感谢!
-
没问题,这种事情时有发生。尽量不要在
viewDidAppear之前调整界面生成器中的任何内容。
标签: ios cocoa-touch uiimageview