tableview将子视图添加到自定义单元格

时间:2014-09-17 06:00:03

标签: uitableview swift

如何使用UISwitchaddsubview添加到tablview的特定部分和行?

例如:

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 12
    }

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 1
    }


    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as cell_TableViewCell

        var oneObject = UISwitch(frame: CGRect(x: 260, y: 5, width: 50, height: 30)) as UISwitch

        if indexPath.section == 2 && indexPath.row == 0
        {
            oneObject.tag = 8
            cell.contentView.addSubview(oneObject)
        }

        return cell
    }

滚动时,此表视图将继续添加到随机单元格。

1 个答案:

答案 0 :(得分:2)

cellForRowAtIndexPath应仅用于设置单元格的属性,而不能添加或删除子视图。由于单元格被重用于每个表格行(在您的示例中,无论如何),在一次调用中添加开关会影响所有行,即使在随机看似的时间也是如此。更好的方法是将UISwitch添加到原型单元格,然后隐藏或显示在cellForRowAtIndexPath中。