无法更改 IBOutlet 属性的框架

Posted

技术标签:

【中文标题】无法更改 IBOutlet 属性的框架【英文标题】:Can not change the frame of an IBOutlet property 【发布时间】:2014-10-13 06:08:41 【问题描述】:

说,我有一个 ViewController 并设置了一个属性:

@property (nonatomic, strong) IBOutlet UIView *contentView;

在Controller的xib文件中,我在默认的UIView上添加了一个UIView,并将其frame设置为0, 0, 320, 568。我将它与属性 contentView 连接起来。

在 viewDidLoad 方法中我这样做:

- (void)viewDidLoad 
    [super viewDidLoad];
    contentView.frame = CGRectMake(0, 20, 320, 300);
    contentView.backgroundColor = [UIColor purpleColor];   //frame print to be 0, 20, 320, 300

问题是 contentView 的框架在 iphone 上呈现为 0, 0, 320, 568。但是我打印出框架,使其成为我在 viewDidLoad 方法中设置的内容。

这是怎么发生的?谢谢~

【问题讨论】:

【参考方案1】:

你在使用自动布局吗?

如果是,则不能更改框架。

要么关闭自动布局,要么使用约束来更改视图的大小。希望这会有所帮助。

【讨论】:

以上是关于无法更改 IBOutlet 属性的框架的主要内容,如果未能解决你的问题,请参考以下文章

UIViewController - 无法通过 IBOutlet 更改 vcontroller.view 中的图像

AspNetUser 上的实体框架流利的 api 1:1 属性无法更改 Account_Id 属性

更改 UIView 框架大小不会更改 UITableview 框架原点 y

IBOutlet 啥时候初始化?

接口生成器、@IBOutlet 以及 Swift 中委托和数据源的协议

更改根视图控制器将 IBOutlet 设为 nil