Я не могу понять это.
У меня есть вид.
это спидометр.
Я положил иглу в спидометр:
- (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.
стрелка заботится о позиционировании для каждого кадра - она устанавливает свой собственный обработчик связи дисплея и выполняет преобразование на этом слое
теперь внезапно метод layoutSubviews моего представления попадает в каждый кадр.
Я не могу понять это поведение.
Я могу понять некоторые изменения в SUPERview, из-за которых этот метод получил удар.
но как SUBlayer может заставить это?
неужели подслой должен быть во власти своего родителя?
Я пытался установить
self.autoresizesSubviews = NO;
что явно не имеет эффекта
свойство, которое я ищу, будет
self.getsAutoresizedBySubviewsOrLayers = NO;
что происходит?