更新一些子视图而不更新所有子视图
Posted
技术标签:
【中文标题】更新一些子视图而不更新所有子视图【英文标题】:Update some subviews without updating all of them 【发布时间】:2016-02-26 02:23:30 【问题描述】:我有一个UIViewController
,其中有几个不同的UIView
子视图。当用户调用某个动作时,我手动更改每个动作的大小、比例和位置。我想更新 UILabel
s 之一(其中一个子视图)中的文本,但每次我这样做时,所有子视图都会恢复到故事板要求的原始大小和位置。有没有办法防止这种情况发生,即只更改文本而不恢复到旧的测量值?
谢谢
【问题讨论】:
【参考方案1】:我想更新其中一个 UILabel(其中一个子视图)中的文本,但每次我这样做时,所有子视图都会恢复到情节提要所需的原始大小和位置。有没有办法防止这种情况发生,即只更改文本而不恢复到旧的测量值?
问题是您通过设置它们的frame
属性来更改子视图的大小和位置。您必须不对受自动布局控制的视图执行此操作!如果你这样做了,这件事就会发生:当布局时间到来时,自动布局约束被强制执行,并且视图跳回到你所说的故事板所要求的大小和位置。并且设置标签文本确实会导致布局时间发生。
相反,要更改子视图的大小和位置,请更改它们的约束! (或者,更改它们的框架并然后更改它们的约束以匹配。)这样,当布局时间到来时,什么都不会发生:约束将匹配子视图的当前大小和位置。
【讨论】:
动画约束更改:***.com/questions/12622424/…以上是关于更新一些子视图而不更新所有子视图的主要内容,如果未能解决你的问题,请参考以下文章