让某个view绕一个点旋转,首先得设置旋转的点是那里,左上角(0,0),右下角是(1,1),左下角是(0,1),右上角是(1.0),中心是(0.5,0.5)
然后设置旋转的角度,我这里是旋转的一个圆的六分之一
selectimage是childView的子视图,在旋转之前需要重新设置子视图的frame使子视图不会发生抖动
#pragma mark childView的点击事件
-(void)btnClick:(selectButton*)sender{
[self.myChildDelegatemyChilditemBtnClick:sender];
myChildView*childView=(myChildView*)[sendersuperview];
CGFloat x=(sender.tag-100)/6.0f;
UIImageView*selecImageView=childView.selectImageView;
[childViewsetAnchorPoint:CGPointMake(0,1)forView:selecImageView];//因为layer位置会发生变化,需要重新设置
selecImageView.transform=CGAffineTransformMakeRotation(x*2*M_PI);//图片绕某一点旋转
}
#pragma mark 重新设置图片的frame,保证图片不发生位移
- (void)setAnchorPoint:(CGPoint)anchorPoint forView:(UIView *)view
{
CGPoint oldOrigin = view.frame.origin;
view.layer.anchorPoint = anchorPoint;
CGPoint newOrigin = view.frame.origin;
CGPoint transition;
transition.x = newOrigin.x - oldOrigin.x;
transition.y = newOrigin.y - oldOrigin.y;
view.center =CGPointMake (view.center.x - transition.x, view.center.y - transition.y);
}