У меня есть CALayer, содержащий несколько подслоев (CATextLayers).Я применяю преобразования в CALayer для некоторых обычных жестов (масштабирование, панорамирование).Все работает отлично, за исключением того, что масштабирование (масштабирование) выполняется в направлении нижнего левого угла вместо центра экрана.
Я нашел некоторую информацию в руководстве по программированию CoreAnimation и попытался установить точку привязки вв центре моего экрана, чтобы каждое преобразование было выполнено в направлении этого якоря ... Но, похоже, оно не работает должным образом.
Вот мой код:
// внутри функции init:
_layerMgr = [[CALayer alloc] init];
_layerMgr.frame = [[UIScreen mainScreen] bounds];
_layerMgr.anchorPoint = CGPointMake (0.5, 0.5);
// сделано для событий жестов:
CGAffineTransform tt = CGAffineTransformMakeTranslation (offset.x, -offset.y);
CGAffineTransform st = CGAffineTransformMakeScale (масштаб, масштаб);
CGAffineTransform rt = CGAffineTransformMakeRotation (вращение);
transform = CGAffineTransformConcat (tt, CGAffineTransformConcat (st, rt));
_layerMgr.transform = CATransform3DMakeAffineTransform (_transform);
Возможно, проблема связана с моейподпредставления?Я добавил их, используя метод addSubView ... ничего особенного ...