वर्तमान कोड:मास्क मनमाने ढंग से आकार बदलने योग्य UIImage साथ UIImageView आकार मुखौटा
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.background होना चाहिए ImageView.layer.bounds;'। यदि आपके फ्रेम का उपयोग सीमा के बराबर नहीं है तो आपके कोड का उपयोग मास्क की एक शिफ्ट के परिणामस्वरूप होगा। – PowerQian