Swift 是否可以更改不同tableview单元格的分隔符宽度?
如果之前有人问过这个问题,或者答案很明显,我会提前道歉——我只是很难找到这个问题的好答案 在tableview中,是否可以为不同的单元格使用不同的分隔符宽度? 我想让前几个单元格具有较短的分隔符宽度,最后一个单元格具有顶部和底部分隔符的边到边 示例图像: 我可以通过在情节提要中将分隔符样式设置为“无”,然后在每个单元格中添加一个浅灰色UIView作为分隔符(在cellForRow方法内部)来伪造所需的外观。但是,如果可能的话,我希望避免这种情况 是否有更好的方法更改不同单元格的分隔符宽度?Swift 是否可以更改不同tableview单元格的分隔符宽度?,swift,xcode,uitableview,uicollectionview,Swift,Xcode,Uitableview,Uicollectionview,如果之前有人问过这个问题,或者答案很明显,我会提前道歉——我只是很难找到这个问题的好答案 在tableview中,是否可以为不同的单元格使用不同的分隔符宽度? 我想让前几个单元格具有较短的分隔符宽度,最后一个单元格具有顶部和底部分隔符的边到边 示例图像: 我可以通过在情节提要中将分隔符样式设置为“无”,然后在每个单元格中添加一个浅灰色UIView作为分隔符(在cellForRow方法内部)来伪造所需的外观。但是,如果可能的话,我希望避免这种情况 是否有更好的方法更改不同单元格的分隔符宽度? 注
注意:我使用的是Swift您可以使用
单元格。separatorInset
更改分隔符的尺寸
例如,这会为前三个单元格绘制一个较短的分隔符:
override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
if indexPath.row < 3 {
cell.separatorInset = UIEdgeInsetsMake(0, 30, 0, 11) // shorter separator
else {
cell.separatorInset = UIEdgeInsetsMake(0, 3, 0, 11) // longer separator
}
}
重写func tableView(tableView:UITableView,willDisplay单元格:UITableViewCell,forRowAt indexPath:indexPath){
如果indexath.row<3{
cell.separatorInset=UIEdgeInsetsMake(0,30,0,11)//较短的分隔符
否则{
cell.separatorInset=UIEdgeInsetsMake(0,3,0,11)//更长的分隔符
}
}
从willDisplayCell
文档:
表视图在使用单元格绘制行之前将此消息发送给其委托,从而允许委托在显示单元格对象之前自定义单元格对象。此方法使委托有机会覆盖表视图先前设置的基于状态的属性,如选择和背景色。委托返回后,“表格视图”仅设置alpha和frame属性,然后仅设置行滑入或滑出时的动画
您是否尝试过使用
cell.separatorInset
?最好的方法可能是在willDisplayCell
方法中,并根据需要为特定的indexPath.row
设置inset。非常感谢koen!您的解决方案非常有效。请问–您为什么喜欢将其放置在willDisplay单元格中她比在牢房里更重要?