如何在tableview Custom Cell上为UIView的左上角和右上角设置角半径?
Posted
技术标签:
【中文标题】如何在tableview Custom Cell上为UIView的左上角和右上角设置角半径?【英文标题】:how to set corner radius for top left and top right of a UIView on tableview Custom Cell? 【发布时间】:2018-10-12 16:52:49 【问题描述】:ViewController.swift
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "mycell") as! CustomTableViewCell
cell.backgroundColor = UIColor.clear
cell.nameLbl.text = "\(adminNmaes[indexPath.row])"
cell.aboutLbl.text = "\(aboutarray[indexPath.row])"
if indexPath.row == 0
cell.view1.roundCorners(corners: [.topLeft,.topRight], radius: 10)
// tableView.reloadData()
return cell
extension UIView
func roundCorners(corners: UIRectCorner, radius: CGFloat)
let path = UIBezierPath(roundedRect: bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
let mask = CAShapeLayer()
mask.path = path.cgPath
layer.mask = mask
我使用自动布局设置自定义单元格类,并使用扩展程序仅对第一个单元格应用角半径。我还想为页脚的左下角和右下角提供圆角半径,并将其填充为 10。感谢任何帮助。提前致谢。
【问题讨论】:
【参考方案1】:ios11 开始,CALayer 有属性 maskedCorners:
var maskedCorners: CACornerMask get set
在你的情况下,你会使用:
cell.contentView.layer.maskedCorners = [.layerMinXMinYCorner, .layerMinXMinYCorner]
这会将左上角和右上角遮盖到您设置的任何cornerRadius。
您还需要确保 contentView 正在裁剪其子视图,以便它们符合形状
cell.contentView.clipsToBounds = true
【讨论】:
你能解释一下吗?我的问题是,当我在单元格中为行索引路径设置角半径时,第一个单元格消失了,如果我尝试将其滚动到顶部,那么只有它才会出现 @vishnu 你的 CustomTableViewCell 类里面有什么图片?也尝试更新的答案 我会发布一张图片,我有一个 uiview,上面有一个按钮和 2 个标签 @vishnu 将您的编辑添加到您提出的问题而不是答案。此外,您正在将您的 backgroundColor 设置为在问题中清除。也尝试更新的答案 我将此行添加到我的单元格中的 indexpath 函数“cell.view1.layer.maskedCorners = [.layerMinXMinYCorner] cell.view1.clipsToBounds = true”处的行仍然没有变化以上是关于如何在tableview Custom Cell上为UIView的左上角和右上角设置角半径?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 TableView Cell 上使用 iOSCharts (https://github.com/danielgindi/Charts)?
如何使用 Alamofire 4.0 获取 JSON 字典/数组并将其显示在 tableView Cell 上
在单击Tableview Cell上使用哪种方法更新Rest Api数据
iOS 在tableview的cell中的button上,添加选中状态的解答