0

私がやろうとしていることは次のことです:

  1. ボタンをクリックして上下反転します。
  2. ボタンをもう一度クリックすると、レイヤーが元に戻ります...

コードは次のとおりです。

    @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 度反転し、ボタンをもう一度クリックしても何も起こりません。

私は途中で何かを逃しましたか?助けてください。

4

1 に答える 1