当不应该添加单元格中的按钮时

时间:2015-01-06 05:13:40

标签: ios iphone swift

所以我有一个设置按钮,它只应该添加到具有当前用户名的单元格中。但是,它似乎随机添加到单元格中。在我创建按钮的语句中,它只是创建一次但是它被添加到多个单元格中。我已附加问题的图像,ps当前用户名为" test",因此设置按钮不应与matt短用户位于同一单元格中。谢谢,下面是我正在创建和添加按钮子视图的函数的附加代码。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    var cell : UITableViewCell? = tableView.dequeueReusableCellWithIdentifier("chatCell") as? UITableViewCell

    if cell == nil {
        cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "chatCell")
    }

    cell!.selectionStyle = UITableViewCellSelectionStyle.None

    let screenSize: CGRect = UIScreen.mainScreen().bounds
    let screenWidth = screenSize.width
    let screenHeight = screenSize.height

    var sectionTitle = self.friendSectionTitles[indexPath.section]
    var friendArray: [String]! = friendDict[sectionTitle]
    var friend = friendArray[indexPath.row]

    if sectionTitle == "me" && friend == PFUser.currentUser().username {
        var settingsButton: UIButton = UIButton.buttonWithType(UIButtonType.System) as UIButton
        settingsButton.frame = CGRectMake(screenWidth - 100 , 5, 50, 30)
        settingsButton.addTarget(self, action: "settingsButtonTapped:", forControlEvents: UIControlEvents.TouchUpInside)
        settingsButton.setTitle("Settings", forState: UIControlState.Normal)
        cell!.addSubview(settingsButton)
    }

    cell!.textLabel!.text = friend

    return cell!
}

image of the table view with settings button in the appropriate area image of the table view where the settings button was put in the inappropriate cell

1 个答案:

答案 0 :(得分:0)

  

在我创建按钮的语句中,它只被创建一次,但它被添加到多个单元格

因为单元格一旦创建,就会被重用于表格的其他行。如果您不希望按钮出现在重复使用的单元格中,则需要(在cellForRowAtIndexPath:的实现中)检测其存在并将其删除(或者至少隐藏对于应该拥有它的每一行。