基本的にここで起こっているのは、UIBarButtonItemにカスタムビューを追加することです。これを45度回転する必要があります。回転は90度または180度回転すると完全に動作しますが、オブジェクトが変形しても90未満になり、オブジェクトが消えると45°になります。 ボタンとアニメーションのスニペットを次に示します。iOS UIImageViewが回転後に消えるM_PI_4
UIImageView * menuImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"plus.png"]];
menuButton = [[UIBarButtonItem alloc] initWithCustomView:menuImage];
UITapGestureRecognizer * tap1 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(toggleMenuView:)];
[menuImage addGestureRecognizer:tap1];
[menuImage setUserInteractionEnabled:YES];
[menuImage.layer setShadowColor:[UIColor blackColor].CGColor];
[menuImage.layer setShadowOffset:CGSizeMake(ShadowSizeWidth, ShadowSizeHeight)];
[menuImage.layer setShadowOpacity:ShadowOpacity];
[menuImage.layer setShadowRadius:ShadowRadius];
[self.navigationItem setRightBarButtonItem:menuButton];
回転:
[UIView animateWithDuration:animationRotateButtonDuration delay:0.0f options:UIViewAnimationCurveLinear animations:^{
CGAffineTransform myTransform = CGAffineTransformMakeRotation(-M_PI_4);
UIBarButtonItem * currentItem = menuButton;
currentItem.customView.transform = myTransform;
}completion:^(BOOL finished){
}];
また、私は、バーボタンの項目のカスタムビューを回転させて同じことを実行しようとしています。他のビューはM_PI_4だけ回転するので、UIBarButtonItem(?)と何か関係があるのでしょうか? –
UIBarButtonItemはカスタムビューをバックグラウンドで受け取っていましたが、私が選んだカスタムビューは、別のUIImageViewを子として持つUIImageViewでした。この2番目のUIImageViewを回転させてこの作業をしなければなりませんでした。 UIBarButtonItem yesに関連していると思います。 – Noob