【问题标题】:Can't set size of UIButton frame with auto layout enabled无法设置启用自动布局的 UIButton 框架的大小
【发布时间】:2014-04-14 11:03:34
【问题描述】:

我真的很努力自己解决这个看似简单的问题,但我还无法解决它!

所以这是交易:

我正在使用启用了自动布局的情节提要。 但是由于我的一个观点中有很多对象,我决定实现

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
                                         duration:(NSTimeInterval)duration

此视图控制器的方法并为视图设置框架,如下所示:

self.startStopBtn.frame = CGRectMake(10, 223.5, 300, 30);

只要我保持UIButton 对象的大小相同(如在情节提要中)并且只更改其来源,它就可以正常工作。一旦我改变大小,按钮就消失了!

最后,我可以以完全相同的方式以相同的方法更改标签、视图和图像视图的框架,而不会出现任何问题。

非常感谢您的帮助! 希望有人可以指导我正确的方向。

【问题讨论】:

标签: ios objective-c uibutton autolayout frame


【解决方案1】:

如果您使用自动布局,则不应操纵 UIView 框架。您应该修改 NSLayoutConstaints 以从代码中更改视图中的某些内容。

【讨论】:

  • 好的,但这意味着我必须为我想要更改的所有约束创建出口。为什么我可以更改所有其他对象的框架?就是UIButton我改不了!
  • 这并不完全正确,因为自动布局的最大偶然性是设置对象之间关系的机会,因此您应该以不需要每个子视图的所有约束或设置自动布局的方式设置视图自动展开子视图取决于内容,这样您的代码中不需要任何约束。
  • 好的!我会再试一次!我将花一些时间尝试在我的故事板中设置自动布局,这样我就不需要从我的代码中操作任何约束。非常感谢您的回复!
猜你喜欢
  • 2016-06-04
  • 1970-01-01
  • 1970-01-01
  • 2013-04-30
  • 1970-01-01
  • 2013-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多