swift 3.0中的uibutton问题

Posted

技术标签:

【中文标题】swift 3.0中的uibutton问题【英文标题】:Uibutton issue in swift 3.0 【发布时间】:2017-02-20 02:39:42 【问题描述】:
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    var cell = UITableViewCell()

    if isFacility 
        cell = tableView.dequeueReusableCell(withIdentifier: "facilityCell")!
        let gameNameLbl = cell.viewWithTag(100) as! UILabel
        gameNameLbl.text = "Badminton Court"
        let gameImgVw = cell.viewWithTag(101) as! UIImageView
        let bookNowBtn = cell.viewWithTag(102) as! UIButton
        bookNowBtn.backgroundColor = DEFAULTAPPCOLOR
        ConstantFile.makeCornerRoundBtnWithOutBorder(btn: bookNowBtn)
        bookNowBtn.tag = indexPath.row
        bookNowBtn.addTarget(self, action: #selector(bookCort(sender:)), for: .touchUpInside)


        bookNowBtn.setTitle("BOOK NOW", for: .normal)
        if indexPath.row % 2 == 0 
            gameImgVw.backgroundColor = UIColor.red
        
        else
            gameImgVw.backgroundColor = UIColor.darkText
        
    
    else
        cell = tableView.dequeueReusableCell(withIdentifier: "bookingCell")!
        let gameImgVw = cell.viewWithTag(103) as! UIImageView
        let gameNameLbl = cell.viewWithTag(104) as! UILabel
        let gameDateLbl = cell.viewWithTag(105) as! UILabel
        let gametimeLbl = cell.viewWithTag(106) as! UILabel
        ConstantFile.roundImageViewWithOutBorder(image: gameImgVw)
        gameNameLbl.text = "Tennis Court"
        gameDateLbl.text = "22 Dec 2017"
        gametimeLbl.text = "7:00pm - 9:00pm"
    
    return cell


在上面的代码中,它让我在滚动表格时崩溃“致命错误:在展开 uibutton 的可选值时意外发现 nil”(在这一行中 let bookNowBtn = cell.viewWithTag(102) as!UIButton)。

【问题讨论】:

显然它正在展开一个不存在的按钮。我假设您已在代码或情节提要的其他位置的单元格中放置了一个按钮,但我不确定您是如何做到的,因为没有关于它的信息。因此,我建议您使用let btn = cell.viewWithTag(102) as UIButton 解开按钮,如果按钮不存在则插入。 最好创建一个自定义单元格,子类,以便您可以使用属性而不是viewWithTag @Rahul :您使用的是静态单元格还是自定义单元格?? 【参考方案1】:

可能是你在故事板中放置了不同的标签值。

【讨论】:

以上是关于swift 3.0中的uibutton问题的主要内容,如果未能解决你的问题,请参考以下文章

类型“UIButton”没有成员“发件人”

在 UIButton 上同时显示图像和标题 - Swift 3

单击 UIButton 以显示 UIPickerView 并在按钮标题上选择 ID:Swift

如何在 UIButton 中的选定状态下从正常状态和标题文本设置 UIImage

Swift 中的可拖动 UIButton/元素?

不...当 UIButton (Swift) 中的文本太长时