美文网首页
swift----tableview同一个UIButton带有不

swift----tableview同一个UIButton带有不

作者: flyrr | 来源:发表于2016-07-05 15:50 被阅读161次

    项目中经常有这样的需求 ---- 同一个按钮有不同的action,比如关注--未关注

    其实UIButton有个方法removeTarget ,就是移除UIButton上的点击事件。。
    然后再根据你的app需求添加上对应的action。

    /**
     设置关注按钮的action
     */
    func setFocusButtonActionWithIsFocus(isFocus: Bool) {
        //先移除按钮上的操作行为--再根据不同情境添加不同的action
        focusBtn.removeTarget(nil, action: nil, forControlEvents: .TouchUpInside)
        switch isFocus {
        case true:
            //关注了,设置选中状态。。
            focusBtn.selected = true
            focusBtn.backgroundColor = UIColor.orangeColor()
            //此时添加,取消关注行为
            focusBtn.addTarget(self, action: .cancelFocus, forControlEvents: .TouchUpInside)
        case false:
            //未关注,设置未选中状态
            focusBtn.selected = false
            focusBtn.backgroundColor = UIColor.grayColor()
            //此时添加,添加关注行为
            focusBtn.addTarget(self, action: .focus, forControlEvents: .TouchUpInside)
        }
    }
    

    这里我首选设置button的选中和未选中的文字,然后再点击之后设置其状态,然后立即移除uibutton行为,添加新的action

    focusBtn.setTitle("关注", forState: .Normal)
    focusBtn.setTitle("已关注", forState: .Selected)

    demo已接上传github。。。。大家可以去下载看看
    https://github.com/guijie20140501/ButtonWithDifferentAction.git

    相关文章

      网友评论

          本文标题:swift----tableview同一个UIButton带有不

          本文链接:https://www.haomeiwen.com/subject/qrihjttx.html