更新一些子视图而不更新所有子视图
Update some subviews without updating all of them
我有一个 UIViewController
,里面有几个不同的 UIView
子视图。当用户调用某个动作时,我手动更改每个的大小、比例和位置。我想更新其中一个 UILabel
(子视图之一)中的文本,但每次我这样做时,所有子视图都会恢复到故事板要求的原始大小和位置。有没有办法防止这种情况发生,即只更改文本而不恢复到旧测量值?
谢谢
I would like to update the text in one of the UILabels (one of the subviews) but every time I do, all the subviews revert back to their original sizes and locations that the storyboard calls for. Is there a way to prevent this from happening, i.e. only changing the text without reverting back to the old measurements?
问题是您通过设置子视图的 frame
属性更改了子视图的大小和位置。您必须不能对受自动布局控制的视图执行此操作!如果你这样做,这件事就会发生:当布局时间到来时,自动布局约束被强制执行并且视图跳回到你所说的故事板要求的大小和位置。并且设置标签文本确实会导致布局时间发生。
相反,要更改子视图的大小和位置,请更改它们的约束! (或者,更改它们的框架,然后 然后 更改它们的约束以匹配。)这样,当布局时间到来时,什么也不会发生:约束将匹配子视图的当前大小和位置。
我有一个 UIViewController
,里面有几个不同的 UIView
子视图。当用户调用某个动作时,我手动更改每个的大小、比例和位置。我想更新其中一个 UILabel
(子视图之一)中的文本,但每次我这样做时,所有子视图都会恢复到故事板要求的原始大小和位置。有没有办法防止这种情况发生,即只更改文本而不恢复到旧测量值?
谢谢
I would like to update the text in one of the UILabels (one of the subviews) but every time I do, all the subviews revert back to their original sizes and locations that the storyboard calls for. Is there a way to prevent this from happening, i.e. only changing the text without reverting back to the old measurements?
问题是您通过设置子视图的 frame
属性更改了子视图的大小和位置。您必须不能对受自动布局控制的视图执行此操作!如果你这样做,这件事就会发生:当布局时间到来时,自动布局约束被强制执行并且视图跳回到你所说的故事板要求的大小和位置。并且设置标签文本确实会导致布局时间发生。
相反,要更改子视图的大小和位置,请更改它们的约束! (或者,更改它们的框架,然后 然后 更改它们的约束以匹配。)这样,当布局时间到来时,什么也不会发生:约束将匹配子视图的当前大小和位置。