超视图帧更改后更新子视图的约束

时间:2015-10-07 12:19:49

标签: ios objective-c ios9

我有一个RowDefinition子类(用于处理拖放)和Interface Build我添加了两个子视图:IsVisibleUIView

两者都有约束:

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

在这里你可以看到三个(超视图背景为绿色)。

enter image description here

当我在superview中为帧更改设置动画时,我的问题出现了。超级视图似乎很好,但它的子视图很疯狂。

在这里你可以看到它(忽略棕色方块,来自另一个视图)

enter image description here

正如您所见,subviews" fall"尽管我在每个子视图上调用了UIImageView,但是从superview中可以看出来。

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

谢谢

1 个答案:

答案 0 :(得分:0)

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

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

2)删除UILabel并使用CATextLayer放置文本,使用this answer将文本垂直居中于UIImageView前面。

现在它工作正常。谢谢你的帮助。