我已使用界面生成器在视图中插入 UITextView,现在我想更改其框架大小,以便以编程方式适合内容。问题在于,由于限制,大小似乎被锁定并且无法从代码中更改。如果我在文件检查器中禁用自动布局,每个对象都会删除约束,但我只想更改 UITextView 而不是其他对象。
[textview setFrame:CGRectMake(x,y,w,h)]; // This doesn't do anything to the uitextview
如果您使用约束,则必须使用约束来更改 UITextView 的大小。在笔尖中设置出口,以便从代码访问需要更改的约束。您可以设置一个约束constant
实时,这通常就足够了。
只是为了澄清其原因:如果视图的框架受约束定位,则无法更改视图的框架。好吧,你可以,但这是徒劳的,而且是不好的做法。这是因为布局系统将使用约束本身来为您更改视图的框架!因此,您可以更改框架,但布局系统将读取并解决约束并再次将框架更改回来。
将约束视为布局系统的“待办事项列表”。约束本身没有任何作用;它们只是规则列表。布局系统完成了这项工作(当layoutSubviews
叫做)。每次需要布局时,布局系统都会出现,读取约束,找出如何遵守它们,然后通过设置视图的框架来实现。你需要工作with那个制度,而不是反对它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)