在表格单元格内设置子视图的操作(swift)

时间:2016-06-27 09:24:32

标签: swift

当我点击子视图时,它没有触发子视图的操作。但我选择了全细胞。如何解决?

这是我的代码。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("idcell", forIndexPath: indexPath) as UITableViewCell
    let lblTitle : UILabel = cell.contentView.viewWithTag(101) as! UILabel
    lblTitle.text = (deptId[indexPath.row] as? String)! + "     " + (deptDesc[indexPath.row] as? String)!
    var height:CGFloat = 40
    if(indexPath.row == departmentSelectedRow){
        for i in 0...deptProfile.count-1{
            let label = UILabel(frame: CGRectMake(0,height,400,30))
            label.targetForAction("sadasdd", withSender: nil)
            height = height+40
            label.text = ("ewrewrewre")
            label.backgroundColor = UIColor.redColor()
            cell.addSubview(label)
        }
    }
    return cell
}

1 个答案:

答案 0 :(得分:0)

如果您想与单元格内的某些内容进行交互(而不是选择整个单元格),则应使用按钮或手势识别器。这些是正确的交互元素,您可以添加目标和操作。

您还应该更改您使用单元格的方式,特别是:

  1. 使用自定义单元格类,因此您可以直接引用单元格元素,而不是使用viewWithTag,这是不好的做法
  2. 使用多个不同的单元格类(以及标识符),以便您可以为选定和未选择的行使用实际不同的单元格
  3. 不要动态创建和添加子视图,这就是不同的单元类所适用的