更改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了更改和恢复高度的演示项目。 希望这可以帮助。