更改UIView框架

我在storyboard设置了一个UIView ,并将其作为一个出口。

  @property (nonatomic, weak) IBOutlet UIView *testView; 

- (void)viewDidLoad方法中,我想要像这样改变它的框架

 CGRect frame = self.testView.frame; frame.size.height = 2; self.testView.frame = frame; 

但它不起作用。 有人可以告诉我为什么?

你可能在你的项目中启用了自动布局 ,如果这样的话setFrame会直接不起作用。 点击这里查看更多信息

解答:

  • 禁用自动布局,如果你不需要更多
  • 使用自动布局检查上面的链接。

看看属性左侧的小圆圈。 它是填充还是空心? 如果它是空的,那么这意味着你没有将故事板的这个特定元素连接到文件的所有者。

如果圆圈被填满,那么连接到你的故事板上的东西。 只要确保它连接到正确的实体,即你正在声明testView的UIViewController(或其子类)。

假设它连接到您的XIB在更改视图后执行以下操作 –

 [self.view setNeedsDisplay]; 

尝试改变高度的高度,看看是否有所作为。 我已经创build了更改和恢复高度的演示项目。 希望这可以帮助。

https://github.com/rshankras/StackOverflowUIView