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
?
没有总是被调用的方法viewDidLayoutSubviews
,它在创建过程中被调用,但也可以在视图中发生事件时调用,例如添加新的子视图.
最好的办法是为你的图层创建一个参考变量,这样就可以删除它,根据需要调整它,或者只是检查你的参考方差是否为零,然后再重新创建它.
归档时间: |
|
查看次数: |
6730 次 |
最近记录: |