如何使用自定义复选框按钮选择表视图行选择?

2024-04-25

如何使用自定义按钮选择表格视图行。我有另一个按钮,称为选择表视图外部的所有内容,我的问题是,在单击表视图按钮外部时,如何选择和取消选择表视图内部的行?同时我可以在表视图中选择单行吗?如何在 swift 3 中做到这一点?这是我在 cellforrow 方法中的代码

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {


    let identifier = "Custom"
    var cell: TStudentAttendanceCell! = tableView.dequeueReusableCell(withIdentifier: identifier) as? TStudentAttendanceCell
    if cell == nil {
        tableView.register(UINib(nibName: "TStudentAttendanceCell", bundle: nil), forCellReuseIdentifier: identifier)
        cell = tableView.dequeueReusableCell(withIdentifier: identifier) as? TStudentAttendanceCell
    }
    print("studentAttendanvceArray--",studentAttendanceArray.object(at: indexPath.row) )
    var localDic :NSDictionary!

    localDic = studentAttendanceArray.object(at: indexPath.row) as! NSDictionary

    Common.sharedInstance.StopActivity()        
    cell.profile_img.image = self.image
    cell.name_lbl.text = localDic["student_name"] as? String
    cell.selectionStyle = UITableViewCellSelectionStyle.none
    cell.contentView.backgroundColor = UIColor.clear
    let whiteRoundedView : UIView = UIView(frame: CGRect(x: 10, y: 8, width: self.view.frame.size.width - 20, height: 90))

    whiteRoundedView.layer.backgroundColor = CGColor(colorSpace: CGColorSpaceCreateDeviceRGB(), components: [1.0, 1.0, 1.0, 0.9])
    whiteRoundedView.layer.masksToBounds = false
    whiteRoundedView.layer.cornerRadius = 2.0
    whiteRoundedView.layer.shadowOffset = CGSize(width: -1, height: 1)
    whiteRoundedView.layer.shadowOpacity = 0.2
    cell.contentView.addSubview(whiteRoundedView)
    cell.contentView.sendSubview(toBack: whiteRoundedView)

    return cell

}

视图控制器

class ViewController: UIViewController,UITableViewDelegate, UITableViewDataSource {

  @IBOutlet var tableView: UITableView!
  var allStudentsArr:[[String:String]] = []
  var selectedRows:[IndexPath] = []


  override func viewDidLoad() {
    super.viewDidLoad()
    tableView.allowsSelection = false
    allStudentsArr = [["name":"name1"],["name":"name2"],["name":"name3"],["name":"name4"],["name":"name5"],["name":"name6"],["name":"name7"],["name":"name8"]]
  }
  func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return allStudentsArr.count
  }

  func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") as! CustomTableViewCell
    cell.nameLbl.text = allStudentsArr[indexPath.row]["name"]
    if selectedRows.contains(indexPath)
    {
      cell.checkBox.setImage(UIImage(named:"selected"), for: .normal)
    }
    else
    {
      cell.checkBox.setImage(UIImage(named:"unselected"), for: .normal)
    }
    cell.checkBox.tag = indexPath.row
    cell.checkBox.addTarget(self, action: #selector(checkBoxSelection(_:)), for: .touchUpInside)
    return cell
  }
  @objc func checkBoxSelection(_ sender:UIButton)
  {
    let selectedIndexPath = IndexPath(row: sender.tag, section: 0)
    if self.selectedRows.contains(selectedIndexPath)
    {
      self.selectedRows.remove(at: self.selectedRows.index(of: selectedIndexPath)!)
    }
    else
    {
      self.selectedRows.append(selectedIndexPath)
    }
    self.tableView.reloadData()
  }
  @IBAction func selectAllBtnAction(_ sender: UIBarButtonItem) {
    self.selectedRows = getAllIndexPaths()
    self.tableView.reloadData()
  }

  func getAllIndexPaths() -> [IndexPath] {
    var indexPaths: [IndexPath] = []
      for j in 0..<tableView.numberOfRows(inSection: 0) {
        indexPaths.append(IndexPath(row: j, section: 0))
      }
        return indexPaths
  }
}

定制电池

class CustomTableViewCell: UITableViewCell {

  @IBOutlet var nameLbl: UILabel!
  @IBOutlet var checkBox: UIButton!
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用自定义复选框按钮选择表视图行选择? 的相关文章

  • GCD获取队列名称/标签

    如何获取当前队列名称 我的意思是队列标签com example myqueue 在 Xcode 4 调试器中我只能看到 block invoke 1 怎么样dispatch queue get label http developer ap
  • 生成 xcframework 库时 xcodebuild 错误“不支持具有多个平台的二进制文件”

    我正在尝试从 MyFramework framework 文件生成 xcframework 文件 我正在运行以下命令 xcodebuild create xcframework framework MyFramework framework
  • 自定义 UITableViewRowAnimation 或持续时间

    我有一个用户可以拖动的应用程序UITableViewCells从一TableView到另一个 我通过在用户触摸的 UITableViewCell 顶部渲染一个 虚拟 单元格来实现此目的 并禁用 真实 单元格 然后我在目标中插入一个新行UIT
  • 使用 Swift p2/OAuth2 并行刷新 OAuth2 访问令牌请求

    我在用https github com p2 OAuth2 https github com p2 OAuth2用于通过 OAuth2 连接到我的应用程序的后端 效果非常好 我遇到的问题是 当访问令牌过期并且同时发生多个请求时 其中一些请求
  • iOS CorePlot如何安装

    我正在尝试在我的一个 iOS 项目中使用 CorePlot 但即使按照说明并在网上查找后 我仍无法正确安装该框架 我觉得文档没有发展 不再描述安装框架的正确方法 我跟着这些说明 https code google com p core pl
  • 如何从 os_log() 查找源文件和行号

    The 记录 Apple 参考 https developer apple com reference os 1891852 logging对于 iOS 10 和 macOS Sierra 中的新日志记录系统 明确表示不要包含行号和源文件信
  • 从 CMSampleBuffer 播放音频

    我在 iOS 中为群组创建了一个视频聊天应用程序 我一直在寻找一些方法来分别控制不同参与者的音频音量 我找到了使用静音和取消静音的方法isPlaybackEnabled in RemoteAudioTrack 但不控制音量 我还想我们是否可
  • Swift 中的数据封装

    我已阅读全文斯威夫特书 https itunes apple com us book swift programming language id881256329 mt 11 并观看了所有全球开发者大会视频 https developer
  • 以编程方式添加 TabBarController

    我想以编程方式制作标签栏控制器和导航控制器 到目前为止 我的代码有效 它在底部显示了一个选项卡栏 但 OptionViewController 在第二个选项卡栏的按钮上没有说任何内容 没有标题 有趣的是 当我单击没有任何内容的按钮时 标题出
  • 如何正确定向从 AVCaptureVideoDataOutputSampleBufferDelegate 生成的图像

    我在用着AVCaptureVideoDataOutputSampleBufferDelegate我收到一个CMSampleBufferRef我将其转换为UIImage 但生成的图像方向不正确 Get a CMSampleBuffer s C
  • 如何在 SwiftUI 中管理 AVPlayer 状态

    我有 SwiftUI 中的 URL 列表 当我点击某个项目时 我会呈现一个全屏视频播放器 我有一个 EnvironmentObject它处理一些查看器选项 例如 是否显示时间码 我还有一个显示和隐藏时间码的切换开关 我只在本例中包含了该切换
  • 将图像从资产库复制到应用程序文件夹

    我有一个 UIImagePickerController 我想将选定的图像保存到我的应用程序中 我可以通过获取当前的 UIImage 并保存它 通过创建文件 来轻松做到这一点 但我更愿意直接将文件从库复制到我的文件夹中 现在我有了所选图像的
  • 在 Swift 中将函数作为参数传递

    在 iOS 8 中 我的以下功能按我的预期工作 func showConfirmBox msg String title String firstBtnStr String secondBtnStr String caller UIView
  • TTTAttributedLabel可以检测链接,但无法正确按下

    我正在使用 TTTAttributedLabel 来检测链接 这是我初始化标签的代码 TTTAttributedLabel getLinkLabelWithSize CGSize size text NSString text TTTAtt
  • SwiftUI:如何横向呈现全屏覆盖

    我正在制作一个应用程序 其中多个页面 视图嵌入到具有选项卡栏 菜单栏和标题的父视图中 如下所示 HeaderView MenuView TabView selection selected HomeView Page2View Page3V
  • 在 WatchKit 和主机 App 中使用具有不同标志的同一文件

    我试图在我的 watchkit 扩展和主机应用程序中使用相同的代码 但在主机应用程序中使用一些附加代码 在 watchkit 扩展中使用一些附加代码 为此 我在各自的目标上添加了 WATCH 和 APP swift 标志 问题是 当我在选择
  • 快速比较两个自定义对象

    我在 Swift 中定义了以下协议 protocol RecordingObserver func aFunc 我必须在某个地方比较实现此协议的两个对象 以检查它们是否相同 我面临的问题是显然 Swift 不允许我们这样做 func are
  • iPhone UITableView - 删除按钮

    我正在使用 滑动删除 功能UITableView 问题是我正在使用定制的UITableViewCell这是在每个项目的基础上创建的 UITableViewCell tableView UITableView aTableView cellF
  • 将相机移动到点击的 SCNNode

    我在用着SceneKit and Swift尝试移动相机 使其 聚焦 在所选节点上 我知道我启用了 defaultCameraController 但我试图通过调整相机的位置dolly rotate and translateInCamer
  • UIDocumentsInteractionController 显示 iBooks 但不打开它

    我的 UIDocumentsInteractionController 正在工作 提供一个带有 iBooks 按钮的操作表 但是当我单击该按钮时 它只是关闭并且不会将我带到 iBooks 这是我的代码 NSString filenamePa

随机推荐