Верхний уровень iOS был закрыт при установке точки привязки

Когда я делаю CATransform3DRotate анимация для другого подпредставления B. И подпредставление A и подпредставление B имеют то же самое суперпредставление. Я установил опорную точку слоя B в CGPointMake(0.5, 0) это подпредставление B может вращаться с осью X, но почему подпредставление A было покрытием, которое является верхним уровнем. И есть мой код.

- (void)addAnimation {
  [self setAnchorPoint:CGPointMake(0.5, 0) forView:self.shareView];
  CATransform3D first_transform = CATransform3DIdentity;
  first_transform.m34 = -1.0 / 500;
  first_transform = CATransform3DRotate(first_transform, 80 / 180.f, 1, 0, 0);

  [UIView animateWithDuration:0.6
                        delay:0
       usingSpringWithDamping:0.5
        initialSpringVelocity:0
                      options:UIViewAnimationOptionOverrideInheritedCurve
                   animations:^{
                     self.shareView.layer.transform = first_transform;
                   } completion:^(BOOL finished) {
                     [UIView animateWithDuration:0.4 animations:^{
                       self.shareView.layer.transform = CATransform3DIdentity;
                     }];
                   }];
}

- (void) setAnchorPoint:(CGPoint)anchorpoint forView:(UIView *)view{
  CGRect oldFrame = view.frame;
  view.layer.anchorPoint = anchorpoint;
  view.frame = oldFrame;
}

0 ответов

Другие вопросы по тегам