具有多个部分的tableview仅在每个部分中选择一行

时间:2016-10-17 09:12:25

标签: ios swift xcode uitableview

我的tableview包含多个部分的自定义单元格。每个部分都有多行。每行包含一个标签和一个按钮(收音机)。我创建了按钮的IBOutlet动作。我的要求是每个部分只选择一个标签。要解决这个问题,我已经实现了以下代码 另一个问题是,如果我选择一个单选按钮并滚动到另一个部分,则单选按钮应显示为已选中。如何解决这个问题,请告诉我。

let position: CGPoint = sender.convertPoint(CGPointZero, toView: table_view)
if let indexPath = table_view.indexPathForRowAtPoint(position)
{
    let cell = (table_view.cellForRowAtIndexPath(indexPath)! as! PartCell)
    let Section_count = table_view.numberOfSections
    let rowCount = table_view.numberOfRowsInSection(indexPath.section)
    for j in 0..<Section_count
    {
       if j==indexPath.section
       {
          for i in 0..<rowCount
          {
              if i==indexPath.row
              {
                cell.btn_radio.selected=true
              }
              else
              {
                cell.btn_radio.selected=false
              }
          }
     }
 }

1 个答案:

答案 0 :(得分:1)

您可以使用以下示例代码解决:

 var selectedArray : NSMutableArray!

  override func viewDidLoad() {
        super.viewDidLoad()
        selectedArray = NSMutableArray()
}

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
      let identifier : String = "reusecell"
      let cell : UITableViewCell = tableView.dequeueReusableCell(withIdentifier: identifier)!

 if (selectedArray? .contains(indexPath))! {
       cell.accessoryType = .checkmark;
        }
          return cell;
     }

  func clickAction(_ sender: AnyObject) {
                    let button = sender as? UIButton
                    let cell = button?.superview?.superview as?   UITableViewCell
                    let indexPath = tblview.indexPath(for: cell!)

                    selectedArray! .removeAllObjects()
                    selectedArray! .add(indexPath)
                    tblview .reloadData()
                    print(indexPath?.row)
                }