은 할 수 있습니다 :레이어를 다시 뒤집을 수 없습니다. CALayer, CATransform3DRotate. 내가 뭘하려고 오전
- 수직 플립을 할 수있는 botton을을 클릭합니다.
코드는 다음과 같습니다 ... 레이어가 다시 등을 뒤집어 줘야 해, 다시 botton을 클릭 :
@interface ViewController(){
CALayer *plane;
}
@end
@implementation ViewController
-(void)viewDidLoad
{
[super viewDidLoad];
[self addALayer];
}
- (void)addALayer{
plane = [CALayer layer];
plane.backgroundColor = [[UIColor orangeColor] CGColor];
//[plane insertSublayer:normalBackground atIndex:0];
plane.opacity = 1;
plane.frame = CGRectMake(0, 0, 300, 100);
plane.position = CGPointMake(250, 150);
plane.anchorPoint = CGPointMake(0.5, 0.5);
plane.borderColor = [UIColor whiteColor].CGColor;
plane.borderWidth = 3;
plane.cornerRadius = 10;
[self.view.layer addSublayer:plane];
}
- (IBAction)click:(id)sender {
BOOL isClicked = ((UIButton*)sender).selected;
((UIButton*)sender).selected = !((UIButton*)sender).selected;
CATransform3D transfrom = CATransform3DIdentity;
transfrom.m34 = -1.0/ 500;
if (!isClicked)
transfrom = CATransform3DRotate(transfrom, degToRad(180.0), 1, 0, 0);
else
transfrom = CATransform3DRotate(transfrom, degToRad(-180.0), 1, 0, 0);
plane.transform = transfrom;
}
그러나, 1 단계에서, 나는 레이어 플립을 볼 수 있습니다 (180) 버튼을 다시 클릭하면 아무 일도 일어나지 않습니다.
중간에 뭔가 놓쳤습니까? 도와주세요.
플립 백이 0이되어서는 안됩니까? 180.0에서 -180으로 (또는 그 반대로) 전환하면 360 도가됩니다. – Rob