圆角半径不适合动态分组的 tableView swift
Corner radius not properly fit in dynamic grouped tableView swift
我已经根据数据动态创建了一个Grouped TableView。基于数据 tableView 单元格生成自动高度,因此每个单元格具有不同的 rowHeight。我已经使用 self.tableView.rowHeight = 50
进行了相应的设置
但问题是我正在使用角半径,但我不想在每个单元格上都使用角半径。
我正在使用 grayBox
UIView 和其中显示的所有单元格。圆角半径适用于单元格或 grayBox 的开始,仅适用于 grayBox 单元格的结尾,但它适用于每个单元格。我怎样才能在开始和底部应用角半径?
viewDidLoad() tableView 行高的代码
self.tableView.rowHeight = 50
动态分组 TableView 代码:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell()
cell.backgroundColor = UIColor.clear
cell.selectionStyle = .none
let grayBox = UIView(frame: CGRect(x: 5, y: 0, width: self.view.frame.size.width - 11, height: 50))
grayBox.backgroundColor = ("#cfd8dc").toColor()
grayBox.layer.cornerRadius = 5
grayBox.layer.borderColor = UIColor(red:0.80, green:0.80, blue:0.80, alpha:1.0).cgColor
grayBox.layer.borderWidth = 1.0
cell.contentView.addSubview(grayBox)
return cell
}
1- 使用出队
let cell = tableView.dequeueReusableCell(withIdentifier: "cell")!
而不是
let cell = UITableViewCell()
2- 通过删除标签
清除此处的子视图
let grayBox = UIView(frame: CGRect(x: 5, y: 0, width: self.view.frame.size.width - 11, height: 50))
grayBox.tag = 333
cell.contentView.subviews.forEach {
if [=12=].tag == 333 {
[=12=].removeFromSuperview()
}
}
cell.contentView.addSubview(grayBox)
3- 角半径
if indexPath.row == 0 || indexPath.row == arr.count - 1 {
grayBox.layer.cornerRadius = 5
}
else {
grayBox.layer.cornerRadius = 0
}
我已经根据数据动态创建了一个Grouped TableView。基于数据 tableView 单元格生成自动高度,因此每个单元格具有不同的 rowHeight。我已经使用 self.tableView.rowHeight = 50
但问题是我正在使用角半径,但我不想在每个单元格上都使用角半径。
我正在使用 grayBox
UIView 和其中显示的所有单元格。圆角半径适用于单元格或 grayBox 的开始,仅适用于 grayBox 单元格的结尾,但它适用于每个单元格。我怎样才能在开始和底部应用角半径?
viewDidLoad() tableView 行高的代码
self.tableView.rowHeight = 50
动态分组 TableView 代码:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell()
cell.backgroundColor = UIColor.clear
cell.selectionStyle = .none
let grayBox = UIView(frame: CGRect(x: 5, y: 0, width: self.view.frame.size.width - 11, height: 50))
grayBox.backgroundColor = ("#cfd8dc").toColor()
grayBox.layer.cornerRadius = 5
grayBox.layer.borderColor = UIColor(red:0.80, green:0.80, blue:0.80, alpha:1.0).cgColor
grayBox.layer.borderWidth = 1.0
cell.contentView.addSubview(grayBox)
return cell
}
1- 使用出队
let cell = tableView.dequeueReusableCell(withIdentifier: "cell")!
而不是
let cell = UITableViewCell()
2- 通过删除标签
清除此处的子视图let grayBox = UIView(frame: CGRect(x: 5, y: 0, width: self.view.frame.size.width - 11, height: 50))
grayBox.tag = 333
cell.contentView.subviews.forEach {
if [=12=].tag == 333 {
[=12=].removeFromSuperview()
}
}
cell.contentView.addSubview(grayBox)
3- 角半径
if indexPath.row == 0 || indexPath.row == arr.count - 1 {
grayBox.layer.cornerRadius = 5
}
else {
grayBox.layer.cornerRadius = 0
}