去掉TableView最后一个Cell的分隔线

一般来说,设计稍微好点的爱屁屁,列表的最后一个Cell都是没有分隔线的,但是TableViewCell默认是都有滴,这就需要手动给去掉,两种方案都很简单,第一种是设置Cell的separatorInset,让他偏移到屏幕外面去,第二种是自定义Cell,自己做隐藏。

前提都是找到最后一个Cell, 这个也很简单,系统有方法:

// 当前的行数 == 该分区所有cell的个数 - 1,就是最后一个cell
indexPath.row == [tableView numberOfRowsInSection:indexPath.section]-1
//  如果是该分区最后一个cell 隐藏
if (indexPath.row == [tableView numberOfRowsInSection:indexPath.section]-1)
{
     // 1.系统分割线,移到屏幕外
     cell.separatorInset = UIEdgeInsetsMake(0, 0, 0, cell.bounds.size.width);
     // 2.自定义Cell
     cell.lineView.hidden = YES;
}
else
{
     // 1.系统分割线,移到屏幕外
     cell.separatorInset =  UIEdgeInsetsMake(0, 15, 0, 0) ;

     // 2.自定义Cell 
     cell.lineView.hidden = NO;
}

两种方案应该都是可行的,用第二种需要设置
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现在 QTableView 中使用一个全选的复选框来选择整列的复选框,你可以通过以下步骤来实现: 1. 确保你的模型中的某一列用于显示复选框。你可以使用 QStandardItemModel 或自定义的模型来实现这一点。 2. 创建一个 QCheckBox 作为全选的复选框。 3. 在视图的表头中插入这个全选的复选框。 4. 连接全选复选框的状态改变信号到一个槽函数。 5. 在槽函数中遍历整列,并设置复选框的状态。 以下是一个示例代码,演示如何在 QTableView 中使用一个全选的复选框来选择整列的复选框: ```cpp #include <QCheckBox> #include <QHeaderView> //... // 创建一个 QCheckBox 作为全选的复选框 QCheckBox* selectAllCheckBox = new QCheckBox(); selectAllCheckBox->setTristate(false); // 设置为二态复选框 // 将全选的复选框插入表头视图 tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive); tableView->setViewportMargins(selectAllCheckBox->width(), 0, 0, 0); tableView->horizontalHeader()->viewport()->layout()->addWidget(selectAllCheckBox); // 连接全选复选框的状态改变信号到槽函数 connect(selectAllCheckBox, &QCheckBox::stateChanged, this, &MyClass::onSelectAllCheckBoxStateChanged); // 槽函数:处理全选复选框状态改变事件 void MyClass::onSelectAllCheckBoxStateChanged(int state) { // 遍历整列,设置复选框的状态 for (int row = 0; row < model->rowCount(); ++row) { QModelIndex index = model->index(row, checkboxColumnIndex); // checkboxColumnIndex 表示复选框所在的列索引 model->setData(index, state, Qt::CheckStateRole); } } ``` 在这个例子中,我们首先创建了一个 QCheckBox 作为全选的复选框。然后,我们将全选的复选框插入到表头视图中。为了确保复选框出现在正确的位置,我们设置了适当的视口边距和布局。 最后,我们连接了全选复选框的状态改变信号 `stateChanged` 到槽函数 `onSelectAllCheckBoxStateChanged`。在槽函数中,我们遍历整列,并根据全选复选框的状态设置相应的数据。 注意:在示例代码中,你需要将 `checkboxColumnIndex` 替换为实际的复选框所在列的索引。 希望这个回答对你有所帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值