2012-09-27 24 views
0

我真的很难理解为什么这不起作用:我有一个UIImageView在笔尖,我需要覆盖viewDidLoad其框架,因为宽度将根据用户输入而改变。下面是我试图改变它的框架:在笔尖调整UIImageView的宽度

CGRect blueBarStart = blueBar.frame; 
blueBarStart.size.width = .1*blueBarStart.size.width; 
[blueBar setFrame:blueBarStart]; 

但是blueBar是在其全,不变的宽度负荷所示。不知道我错过了什么。谢谢你的帮助。

回答

0

因为我使用'Left'作为UIImageView的模式,所以无论我设置的宽度是多少,它都会强制显示其中的完整图像。

0

该视图在viewDidLoad期间未完全加载/配置,因此您在viewDidLoad期间所做的任何更改都可能被重写或重置。尝试将您的调整大小代码移动到viewWillAppear

+0

嗯,这没有奏效。 UIImageView是在独立于笔尖的UIView中,并且它被添加为viewDidLoad中以编程方式创建的UIScrollView的子视图...会影响任何东西吗? – inorganik

+0

@bobnoble你是什么意思?什么不完全加载或配置? –

+0

@CarlVeazey - 当viewDidLoad被调用时,视图还没有布置(即帧/边界/等视图不一定是已知的)。您可以访问视图并设置一些属性(例如,'UILabel'上的文本,但不能依赖任何您访问或设置的布局值保持不变。在'viewWillAppear'布局已完成,它保存为访问和/或设置布局属性。 – bobnoble