繁体   English   中英

更改超级视图框架后更新子视图的约束

[英]Update constraints of subviews after superview frame changes

我有一个UIView子类(用于处理拖放),并使用Interface Build添加了两个子视图: UIImageViewUILabel

两者都有约束:

UIImageView边框与UIImageView边框匹配,以填充所有可用空间。 UILabel垂直和水平居中。

在这里您可以看到三个(超级背景为绿色)。

在此处输入图片说明

当我为超级视图中的帧变化设置动画时,我的问题就来了。 超级视图看起来不错,但其子视图变得疯狂。

在这里您可以看到它(忽略棕色正方形,是从另一个角度来看的)

在此处输入图片说明

如您所见,尽管我在每个子视图上都调用updateConstraints ,但子视图还是从父视图中“掉下”了。

我知道将AutoLayout与setFrame混合使用是不好的做法,但这是我知道的唯一方法。

谢谢

感谢评论,我做了一些更改。

1)使用UIImageView更改超级视图(绿色的)。

2)删除UILabel并使用CATextLayer放置文本,使用此答案将文本垂直居中放置在UIImageView的前面。

现在工作正常。 谢谢您的帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM