Верхний уровень 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;
}