是否有一个在viewDidLayoutSubviews之后调用的方法?

sam*_*oes 3 objective-c ios swift

我需要将一个CALayer添加到UILabel,但只有在UILabel更改了它的帧之后.UILabel在viewDidLayoutSubviews方法中更改了它的框架,如果我在那里添加CALayer,它将创建多个CALayers实例,因为viewDidLayoutSubviews它被多次调用.我在添加新的CALay之前尝试删除所有CALayers,但有时也删除了文本.我刚刚习惯self.eventAttending!.layer.sublayers = nil将子图层设置为null.

所以,我认为对我的问题最简单的答案是在调整框架之后简单地添加CALayer viewDidLayoutSubviews,这就引出了我的问题:之后调用了什么方法viewDidLayoutSubviews

Joe*_*oel 7

没有总是被调用的方法viewDidLayoutSubviews,它在创建过程中被调用,但也可以在视图中发生事件时调用,例如添加新的子视图.

最好的办法是为你的图层创建一个参考变量,这样就可以删除它,根据需要调整它,或者只是检查你的参考方差是否为零,然后再重新创建它.