以编程方式调整控件框架

Posted

技术标签:

【中文标题】以编程方式调整控件框架【英文标题】:Adjusting frame of controls programmatically 【发布时间】:2014-04-14 12:54:34 【问题描述】:

我正在通过 xib 文件使用 UIButton 控件。现在我想以编程方式设置按钮的框架。我在下面尝试过

btn.frame=CGRectMake(0,0,200,70);

它不会改变位置,并且保持在我在 XIB 文件中放置的相同 X 和 Y 坐标上。

【问题讨论】:

你在使用自动布局吗? 在调试器中,你能看到 btn 被正确初始化了吗?如果您输入po btn,您应该会看到有关该按钮的详细信息,包括其当前帧。 @Fogmeister - 我没有使用自动布局 @Clafou - 是的,按钮已正确初始化 这个按钮可能是另一个子视图的子视图。请确保此按钮是超级视图的子视图(VC的默认视图) 【参考方案1】:

像这样使用前两个参数代表按钮的 x,y 坐标,其他两个代表按钮的高度和宽度

 btn.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);

【讨论】:

【参考方案2】:

移除使用自动布局属性

【讨论】:

我试过这个。但它会影响以编程方式添加的其他控件的框架【参考方案3】:

转到您的 xib 文件,选择 UIButton 并在右侧面板上选择第一个选项 File Inspector。取消选中Use Autolayout 复选框

【讨论】:

以上是关于以编程方式调整控件框架的主要内容,如果未能解决你的问题,请参考以下文章

UITextView 以编程方式调整大小,但随后设置为旧的故事板值。

ActiveX - 控件的大小调整问题,在 .NET 中创建

UIView 调整内容大小

如何以编程方式设置 UIView 的自动调整大小掩码?

调整大小后使用自动布局以编程方式居中 UIImageVIew

如何以编程方式调整自定义视图的大小?