Я сделал улучшение по сравнению с тем, что у вас здесь, и это, безусловно, заставляет его работать плавно (как раньше это было в iOS 4).
В AfOpenFlowView.m, вместо того, что вы уже говорилось выше (в -setUpInitialState):
leftTransform = CATransform3DTranslate(CATransform3DIdentity, 0, 0, SIDE_COVER_ZPOSITION/2.0);
leftTransform = CATransform3DRotate(leftTransform, SIDE_COVER_ANGLE, 0.0f, 1.0f, 0.0f);
rightTransform = CATransform3DTranslate(CATransform3DIdentity, 0, 0, SIDE_COVER_ZPOSITION/2.0);
rightTransform = CATransform3DRotate(rightTransform, SIDE_COVER_ANGLE, 0.0f, -1.0f, 0.0f);
Внутри -layoutCover: selectedCover: анимированные, поместите следующий код:
CGFloat newZPosition = SIDE_COVER_ZPOSITION/2.0;
...
CABasicAnimation *zPositionAnimation = [CABasicAnimation animationWithKeyPath:@"zPosition"];
[zPositionAnimation setToValue:[NSNumber numberWithFloat:newZPosition]];
[zPositionAnimation setDuration:(animated ? .3 : 0.0)];
[zPositionAnimation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[zPositionAnimation setRemovedOnCompletion:NO];
[zPositionAnimation setFillMode:kCAFillModeForwards];
Теперь, вместо того, чтобы делать:
aCover.layer.zPosition = newZPosition;
Замените его:
[aCover.layer addAnimation:zPositionAnimation forKey:nil];
можно условно включить либо в зависимости от того, он работает на прошивке 4 или 5.
Best,
Пожалуйста, разместить изображение грубого transfomation :) – jrturton
Да, я также сталкиваюсь с той же проблемой, это похоже на отражение изображения в 3D-эффекте. Предоставьте некоторое решение, если у кого есть. –
Я не могу сделать снимок экрана, потому что грубость происходит при салфетке, и это очень быстро. –