我使用故事板创建了一个视图,我希望在ios 6时将其移动20像素(猜测为什么:D)。
-(void)awakeFromNib
{
if( SYSTEM_VERSION_LESS_THAN(@"7.0") )
{
self.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height );
}
}
这段代码在这里不起作用,但是如果我将它放在稍后调用的函数中,它首次执行,但随后将其自身重置为默认高度。
为什么这个帧会改变,我怎样才能确保它保持不变?
欢迎任何帮助......
答案 0 :(得分:0)
视图恢复到默认高度的原因很可能是由于自动布局。如果直接在启用自动布局的情况下更改帧,则当任何内容导致视图重绘时,对象将恢复为由其约束确定的帧。因此,您应该使用约束而不是设置框架(或关闭自动布局)来更改视图的大小或位置。
你发布的代码在awakeFromNib中不起作用的原因是因为我上面所说的。此时尚未加载或绘制视图,因此在您看到之前它将恢复为约束定义的框架。