• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 滚动时 UIBezierPath 问题的舍入

[复制链接]
菜鸟教程小白 发表于 2022-12-12 19:19:08 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我是 iOS 新手。我正在制作一个聊天应用程序。我正在使用 UITableView 来显示消息聊天(一个单元格 - 一个消息)。
在每个单元格中,我会在 2,3 或 4 角中将消息四舍五入(如 Facebook 聊天)

对于圆形,我在每个 Tableview Cell

layoutSubView 内使用 UIBezierPath
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.messageView.bounds byRoundingCornersUIRectCornerTopLeft | 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;

enter image description here

问题是,当布局第一次初始化时,一切正常,但是当我滚动某些单元格时出现错误的圆角(我发现问题是有时滚动 self.messageView.bounds 返回错误的值,所以 UIBezierPath 绘制了错误的角)但我不知道为什么

我怎样才能防止它发生? 或者我是否可以在没有 UIBezierPath 的情况下使用另一种方法来舍入 View (我谷歌但我只找到一种舍入 UIView 的方法是使用 UIBezierPath )?
任何帮助将不胜感激



Best Answer-推荐答案


我遇到了类似的问题,并通过在 tableView:willDisplayCell:forRowAtIndexPath 中移动我的圆角代码来解决它。这将允许 Cocoa 正确调整大小。

关于ios - 滚动时 UIBezierPath 问题的舍入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36420899/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap