4

我正在尝试在圆形遮罩(使用 myImageView.layer.mask 设置)内旋转 UIImageView。问题是,每当我尝试旋转所述 UIImageView 时,遮罩都会随之旋转。这是一些代码。

设置面具:

    UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(0, - 169)
                                                        radius:191 
                                                    startAngle:0.0
                                                      endAngle:2*M_PI 
                                                     clockwise:YES];    

    CAShapeLayer *shapeLayer  = [CAShapeLayer layer];
    [shapeLayer setFrame:myImageView.bounds];
    [shapeLayer setPath:[path CGPath]];
    myImageView.layer.mask = shapeLayer;

动画片:

[UIView animateWithDuration:kRotationTime animations:^(void){        
    myImageView.transform = CGAffineTransformMakeRotation(angle);
}];

这基本上就是它的全部内容。一个 UIImageView 在一个固定位置的圆形遮罩内围绕它自己的中心旋转——这就是想要的效果。也许还有另一种构建视图层次结构的方法,以便 myImageView 和掩码是兄弟姐妹,但我没有走这条路。

4

1 回答 1

8

将图像视图放入一个额外的普通 UIView 超级视图中。在superview上设置图层蒙版。动画图像视图。

于 2012-05-21T08:27:04.037 回答