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

项目中经常有这样的需求 ---- 同一个按钮有不同的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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *7月8日上午 N:Block :跟一个函数块差不多,会对里面所有的内容的引用计数+1,想要解决就用__block...
    炙冰阅读 2,542评论 1 14
  • 编码规范有什么作用呢? 提高代码可读性统一全局,加强团队合作减少维护成本规范的代码有助于审查代码养成好习惯,有助于...
    7a9d36c8963d阅读 1,284评论 0 0
  • 山楂不仅能助消化。而且还有很多功效。它还可以帮助女性调经,让女性们在那几天顺顺利利。 山楂让女性月经一顺到底 治疗...
    橙小镜阅读 262评论 0 0
  • 去年生日的前夕,看到初中的一位女同学发了和他的合照,然后顿时明了为什么他突然从好友列表里消失了。室友说,这是上天送...
    就叫不二阅读 485评论 0 0
  • 我觉得没看过《撬动幸福》,可能还没有发言权,仅对这一段话发表点小想法:钱与幸福几乎不相关,但钱所带来的增值享受是不...
    小小博2011阅读 254评论 2 0