UIBezierPath bezierPathWithRoundedRect错误的舍入

时间:2018-01-03 14:45:17

标签: ios rounding masking cashapelayer

我试图通过对他们应用 bezierPathWithRoundedRect 来解决聊天气泡问题。一切都近乎完美。但是出于一些奇怪的原因,在某些情况下,其中一个角落对我来说比其他角落更大。为什么会发生这种情况并避免它呢?

我的代码:

bubbleContainer.layer.cornerRadius = 6.0;

UIRectCorner cornersOut = (UIRectCornerTopLeft | UIRectCornerTopRight | UIRectCornerBottomLeft);
UIRectCorner cornersIn = (UIRectCornerTopLeft | UIRectCornerTopRight | UIRectCornerBottomRight);
UIRectCorner corners = isOutMessage ? cornersOut : cornersIn;

UIBezierPath * maskPath = [UIBezierPath bezierPathWithRoundedRect:bubbleContainer.bounds byRoundingCorners:corners cornerRadii:CGSizeMake(17.0, 17.0)];
CAShapeLayer * maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = bubbleContainer.bounds;
maskLayer.path  = maskPath.CGPath;

bubbleContainer.layer.mask = maskLayer;

enter image description here

正如您所看到的,带有文字的气泡" 111"和" 1111"有一个不同的右上角。没有其他的气泡遮盖,并且在应用遮罩后,气泡不会调整大小。

0 个答案:

没有答案
相关问题