当前代码:面膜任意大小的UIImageView与可调整大小的UIImage掩盖
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;'。如果图层的框架不等于边界,则使用您的代码将导致掩码移位。 – PowerQian