我是iOS新手。我正在制作一个聊天应用程序。我使用UITableView
来显示消息聊天(一个单元格 - 一条消息)。
在每个单元格中,我会将消息圆角化为2、3或4个角(类似于Facebook聊天)。
为了实现圆角化,我在每个Tableview Cell
的layoutSubView
中使用UIBezierPath
。
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.messageView.bounds byRoundingCorners:(UIRectCornerTopLeft | UIRectCornerBottomLeft) cornerRadii:CGSizeMake(3.0, 3.0)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = self.bounds;
maskLayer.path = maskPath.CGPath;
self.messageView.layer.mask = maskLayer;
问题是:当布局首次初始化时,一切都正常,但当我滚动时,有些单元格的圆角会出现错误(我发现问题有时是因为滚动时self.messageView.bounds
返回错误的值,因此UIBezierPath
绘制了错误的圆角),但我不知道为什么。
我该如何防止这种情况发生?
或者我是否有另一种方法来圆角视图而不使用UIBezierPath
(我搜索过,但只找到使用UIBezierPath
来圆角UIView的方法 :( )?
感谢任何帮助。
UIBezierPath
,就像我的代码一样。 - Linh