我在每个单元格中编写一个带有图片的tableview单元格。 图片的宽度应该与下面的描述相同。 它在iphone 6上完美运行,但不适用于iphone 5s或iphone 6plus ...... 只有当我使用这个功能时才会出现问题:
let maskPath = UIBezierPath(roundedRect: cell.picStep.bounds, byRoundingCorners: [.topLeft, .topRight], cornerRadii: CGSize(width: 8.0, height: 0.0))
let maskLayer = CAShapeLayer()
maskLayer.path = maskPath.cgPath
cell.picStep.layer.mask = maskLayer
我怎样才能保持半径效果(仅在顶部)并且同时具有良好的宽度?
我尝试将“掩码函数”直接移动到单元格中,在awakeFromNib中,在layoutSubviews中,即使在tableViewController中,也没有任何工作:/
解决方案:
在我的TableViewController中,我有一个带约束的小函数:
if (indexPath.row + 1) % 2 == 0 {
cell.constLView1.constant = 60
cell.constRView1.constant = 15
} else {
cell.constLView1.constant = 15
cell.constRView1.constant = 60
}
我通过调用:
来改变获取roundRect的方式roundedRect: CGRect(x: 0, y: 0, width: width - self.constLView1.constant - self.constRView1.constant, height: width - self.constLView1.constant - self.constRView1.constant
在单元格的layoutSubviews()中。 我不知道这是否是一个很好的方法,但它正在发挥作用......