首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在UITableView中仅使某些行可删除[Swift 3.0 -Xcode8]

在UITableView中,我们可以通过实现UITableViewDelegate协议中的canEditRowAt方法来控制某些行是否可删除。canEditRowAt方法返回一个布尔值,用于指示指定行是否可编辑。如果返回true,则该行可以编辑,如果返回false,则该行不可编辑。

下面是一个示例代码,演示如何在UITableView中仅使某些行可删除:

代码语言:txt
复制
import UIKit

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    let data = ["Row 1", "Row 2", "Row 3", "Row 4", "Row 5"]
    var deletableRows = [2, 4] // 定义可删除的行索引

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let tableView = UITableView(frame: view.bounds, style: .plain)
        tableView.delegate = self
        tableView.dataSource = self
        view.addSubview(tableView)
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return data.count
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = UITableViewCell(style: .default, reuseIdentifier: nil)
        cell.textLabel?.text = data[indexPath.row]
        return cell
    }
    
    func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
        return deletableRows.contains(indexPath.row)
    }
    
    func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
        if editingStyle == .delete {
            // 执行删除操作
            data.remove(at: indexPath.row)
            tableView.deleteRows(at: [indexPath], with: .fade)
        }
    }
}

在上述代码中,我们通过定义一个deletableRows数组来存储可删除的行索引。然后在canEditRowAt方法中,判断当前行的索引是否在deletableRows数组中,如果是,则返回true,表示该行可编辑。在commit editingStyle方法中,我们执行实际的删除操作,并更新数据源和界面。

这样,只有索引为2和4的行才可以被删除,其他行则不可编辑。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云开发者平台:https://cloud.tencent.com/developer
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb-for-mysql
  • 云原生容器服务:https://cloud.tencent.com/product/tke
  • 人工智能平台:https://cloud.tencent.com/product/ai
  • 物联网平台:https://cloud.tencent.com/product/iotexplorer
  • 移动开发平台:https://cloud.tencent.com/product/mpp
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯区块链服务:https://cloud.tencent.com/product/tbaas
  • 腾讯元宇宙:https://cloud.tencent.com/product/tencent-metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券