这里基本上发生的是我正在向UIBarButtonItem添加一个自定义视图,我需要将它旋转45度,如果旋转90度或180度旋转效果很好,但是当它小于90时,对象得到变形,在45度下物体消失。 以下是按钮和动画的片段。
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){
}];
答案 0 :(得分:1)
使用anchorPoint并导入"QuartzCore/QuartzCore.h"
currentItem.customView.layer.anchorPoint = CGPointMake(1.0, 0.0);//it is not fixed point you have to change.
我认为这会对你有所帮助。
答案 1 :(得分:1)
我和你有完全相同的问题。我的问题是我在 viewDidLoad 中进行轮换。
尝试在 viewDidAppear 中执行此操作,它对我有效。
答案 2 :(得分:1)
如果UIImageView contentMode设置为UIViewContentModeScaleAspectFit或其他缩放方面,旋转将导致图像消失。
将contentMode更改为UIViewContentModeCenter应解决问题。
答案 3 :(得分:0)