У меня есть CALayer, который содержит несколько других подслоев (на самом деле CATextLayer)
Я хочу применить некоторые преобразования к этому слою, когда пользователь делает обычный жест на ipad, но, похоже, он не работает должным образом. Цель использования CALayer состояла в том, чтобы применить преобразование только к этому слою, чтобы все мои sub-textLayer были затронуты одновременно с одним и тем же преобразованием.
Что происходит, так это то, что трансформация, кажется, мерцает между предыдущей и текущей позицией. Я действительно не понимаю, в чем может быть проблема ... Когда я делаю жест панорамирования двумя пальцами, например, позиции CaTextLayer все время мерцают во время моего жеста, и в конце они все правильно помещаются в свою новую переведенную позицию.
Так что, кажется, все работает нормально, кроме той мерцающей вещи, которая меня сильно беспокоит.
Мне нужно установить свойство, о котором я не знаю? Я думаю, что это может быть как-то связано с границами и рамкой ....
Вот как я создаю свой CATextLayer (Это делается только один раз при создании и работает правильно):
_textString = [[NSString alloc] initWithString: text];
_position = position;
attributedTextLayer_ = [[CATextLayer alloc] init];
attributedTextLayer_.bounds = frameSize;
//.. Set the font
attributedTextLayer_.string = attrString;
attributedTextLayer_.wrapped = YES;
CFRange fitRange;
CGRect textDisplayRect = CGRectInset(attributedTextLayer_.bounds, 10.f, 10.f);
CGSize recommendedSize = [self suggestSizeAndFitRange:&fitRange
forAttributedString:attrString
usingSize:textDisplayRect.size];
[attributedTextLayer_ setValue:[NSValue valueWithCGSize:recommendedSize] forKeyPath:@"bounds.size"];
attributedTextLayer_.position = _position;
Вот как я добавляю их в свой Super CALayer
[_layerMgr addSublayer:t.attributedTextLayer_];
[[_drawDelegate UI_GetViewController].view.layer addSublayer:_layerMgr];
А вот как я применяю свое преобразование:
_layerMgr.transform = CATransform3DMakeAffineTransform (_transform);