我的视图设置其框架本身

时间:2013-11-25 15:42:13

标签: ios

我使用故事板创建了一个视图,我希望在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 );
   }
}

这段代码在这里不起作用,但是如果我将它放在稍后调用的函数中,它首次执行,但随后将其自身重置为默认高度。

为什么这个帧会改变,我怎样才能确保它保持不变?

欢迎任何帮助......

1 个答案:

答案 0 :(得分:0)

视图恢复到默认高度的原因很可能是由于自动布局。如果直接在启用自动布局的情况下更改帧,则当任何内容导致视图重绘时,对象将恢复为由其约束确定的帧。因此,您应该使用约束而不是设置框架(或关闭自动布局)来更改视图的大小或位置。

你发布的代码在awakeFromNib中不起作用的原因是因为我上面所说的。此时尚未加载或绘制视图,因此在您看到之前它将恢复为约束定义的框架。