我无法弄清楚这一点。
我有一个看法。
它是一个速度计。
我在车速表里放了一根针:
- (id) initWithFrame: (CGRect) frame
{
self = [super initWithFrame: frame]; // [super initWithCoder: coder];
if (! self)
return nil;
:
:
:
self.needle = [ [ [Needle alloc] initWithMaxRadius: 0.5*300
[self.layer addSublayer: needle.layer];
self.needle.layer.position = CGPointMake( frame.size.width / 2, frame.size.height / 2 );
return self;
}
针对象包含一个 CALayer 属性。
needle 负责为每一帧定位自己——它设置自己的显示链接处理程序并在该层上执行转换
现在突然我的视图的 layoutSubviews 方法每一帧都被击中。
我无法理解这种行为。
我可以理解 SUPERview 中的一些变化导致这种方法受到影响。但是 SUBlayer 如何强制执行此操作?
一个子层肯定应该受其父层的摆布吗?
我试过设置
self.autoresizesSubviews = NO;
这显然没有效果
我要找的房产是
self.getsAutoresizedBySubviewsOrLayers = NO;
到底是怎么回事?