2

我有一个 UIImaveView(红色的),我已经旋转了 45°。在这个我绘制了一个带有渐变的 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];
4

1 回答 1

3

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

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

于 2013-07-09T14:45:50.723 回答