【发布时间】:2013-12-25 12:49:54
【问题描述】:
当前代码:
self.backgroundImageView.image = [self.message imageOfSize:self.message.size]; // Random image, random size
UIImage *rightBubbleBackground = [[UIImage imageNamed:@"BubbleRight"]
resizableImageWithCapInsets:BubbleRightCapInsets
resizingMode:UIImageResizingModeStretch];
CALayer *mask = [CALayer layer];
mask.contents = (id)[rightBubbleBackground CGImage];
mask.frame = self.backgroundImageView.layer.frame;
self.backgroundImageView.layer.mask = mask;
self.backgroundImageView.layer.masksToBounds = YES;
这不能正常工作。尽管应用了遮罩,但 rightBubbleBackground 无法正确调整大小以适应 self.backgroundImageView,即使它设置了调整大小的帽插入 (BubbleRightCapInsets)。
原图:
面具图片(rightBubbleBackground):
结果:
我找到了this answer,但它只适用于对称图像。也许我可以修改这个答案以供我使用。
【问题讨论】:
-
我认为
mask.frame = self.backgroundImageView.layer.frame;应该是mask.frame = self.backgroundImageView.layer.bounds;。如果图层的框架不等于边界,使用您的代码将导致掩码移动。
标签: ios uiimageview uiimage calayer