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

ios - uitableViewCell.rounded 角不会立即显示

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

我有这些collectionViewCell的方法

cell.restarauntImage.roundCorners([.TopLeft, .TopRight], radius: 10, borderColor: UIColor.clearColor(), borderWidth: 0)

和tableViewCell

cell.restImage.roundCorners([.TopLeft, .TopRight], radius: 7, borderColor: UIColor.clearColor(), borderWidth: 0)

问题在于它与collectionView完美配合,但在tableView中它不能立即与.TopRight一起工作,它仅适用于我多次重复使用单元格,但是.TopLeft有效。此外,如果我删除 .TopLeft 并尝试仅应用于 .TopRight 它也不起作用。可能是什么问题?

更新:在堆栈溢出时发现扩展

extension UIView {
func roundCorners(corners:UIRectCorner, radius: CGFloat, borderColor: UIColor, borderWidth: CGFloat)
{
    let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
    let mask = CAShapeLayer()
    mask.path = path.CGPath
    self.layer.mask = mask
    addBorder(mask, borderWidth: borderWidth, borderColor: borderColor)
}

private func addBorder(mask: CAShapeLayer, borderWidth: CGFloat, borderColor: UIColor) {
    let borderLayer = CAShapeLayer()
    borderLayer.path = mask.path
    borderLayer.fillColor = UIColor.clearColor().CGColor
    borderLayer.strokeColor = borderColor.CGColor
    borderLayer.lineWidth = borderWidth
    borderLayer.frame = bounds
    layer.addSublayer(borderLayer)
}
}

update2: cellForRowAtIndexPath,我尝试在ink_setImage之后将此方法应用于每个案例,但它也不起作用。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("searchCell" , forIndexPath: indexPath) as! SearchTableViewCell
        cell.restImage.roundCorners([.TopLeft, .TopRight], radius: 10, borderColor: UIColor.clearColor(), borderWidth: 0)
        cell.backgroundGray.roundCorners([.BottomLeft, .BottomRight], radius: 7, borderColor: UIColor.clearColor(), borderWidth: 0)
        switch (indexPath.row) {
        case 0:
            cell.restImage.hnk_setImageFromURL(NSURL(string: "https://pp.vk.me/c636117/v636117560/29385/OukzPhoe4q0.jpg")!)
        case 1:
            cell.restImage.hnk_setImageFromURL(NSURL(string: "https://pp.vk.me/c636117/v636117560/29385/OukzPhoe4q0.jpg")!)
        case 2:
            cell.restImage.hnk_setImageFromURL(NSURL(string: "https://pp.vk.me/c636117/v636117560/29385/OukzPhoe4q0.jpg")!)
        case 3:
            cell.restImage.hnk_setImageFromURL(NSURL(string: "https://pp.vk.me/c636117/v636117560/29385/OukzPhoe4q0.jpg")!)
        default:
            cell.restImage.hnk_setImageFromURL(NSURL(string: "https://pp.vk.me/c636117/v636117560/29385/OukzPhoe4q0.jpg")!)
        return cell
}
}



Best Answer-推荐答案


尝试将 self.tableView.reloadData() 调用放在 viewDidLoad 方法的末尾,这可能会解决延迟问题。

关于ios - uitableViewCell.rounded 角不会立即显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38720729/

回复

使用道具 举报

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

本版积分规则

关注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