裁剪uiimageview超出另一个视图的范围

时间:2013-07-09 14:40:04

标签: iphone ios image sdk crop

我有一个旋转到45°的UIImaveView(红色)。在这里我画了一个带有渐变的UIImage并将它放在下面的UIImageView上面。因为我将它旋转到45°,所以这个UIImageView覆盖了我的UIImageView(灰色的)下面。

所以我想裁剪它适合左上角的UIImageView,但不会重叠在底层UIImageView的框架上。应该有绘制路径等的选项,但我希望有人有任何更简单的解决方案吗?

http://i.stack.imgur.com/C89nP.png

溶液

UIImageView *rotatedGradient = [[UIImageView alloc] initWithFrame:CGRectMake(-20, -20, 50, 50)];
[_underlayingImageView addSubview:rotatedGradient];
[_underlayingImageView setClipsToBounds:YES];

1 个答案:

答案 0 :(得分:2)

通常,您应该将视图(红色)添加为另一个视图的子视图(灰色),然后将超级视图(灰色)设置为clipsToBounds = YES,这将告诉它不允许子视图在外部绘制它的框架。

如果两个视图(红色和灰色)都是代表您感兴趣的帧的其他视图的子视图,则可以在公共超级视图上设置clipsToBounds = YES