2016-01-13 50 views
-1

UIButton后处于UICollectionviewcell,这在UICollectionview,这在UITableViewCell,这是一个UITableViewUIButton的文本返回到原始值的新值设置为它

该按钮是一个像按钮,我希望它点击时改变其文本。但更改文字后,它会返回原始值。这可能是什么原因?

这里是什么样子: https://gfycat.com/UnlawfulGroundedErin

这是按钮的onClickEvent

@IBAction func actionClick(sender: MyActionButton) { 

    if (sender.toggle){ 
     print("Do dislike call here.") 
     sender.toggle = false 
     sender.titleLabel?.text = "Like" 

    }else{ 
     print("Do like call here.") 
     sender.toggle = true 
     sender.titleLabel?.text = "Unlike" 
    } 

} 

回答

1

试试这个

@IBAction func actionClick(sender: UIButton) { 
if sender.isSelected() { 
    sender.selected = false 
    sender.setTitle("Like", forState: UIControlState.Normal) 
} 
else { 
    sender.selected = true 
    sender.setTitle("Unlike", forState: UIControlState.Normal) 
} 
} 

选择-2

var isSelectFirst:Bool = false 

@IBAction func actionClick(sender: UIButton) { 

     if isHighLighted == false{ 
     sender.setTitle("Unlike", forState: UIControlState.Normal) 
     isHighLighted = true 
    }else{ 
     sender.setTitle("Like", forState: UIControlState.Normal) 
     isHighLighted = false 
    } 
} 
+0

实际上,谢谢你! –

+0

欢迎兄弟... –

2

试试这个。它会正常工作

@IBAction FUNC actionClick(发件人:MyActionButton){

if (sender.toggle){ 
     print("Do dislike call here.") 
     sender.toggle = false 
     sender.titleLabel?.text = "Like" 
     sender.setTitle("Like", forState: UIControlState.Normal) 
    }else{ 
     print("Do like call here.") 
     sender.toggle = true 
     sender.setTitle("Unlike", forState: UIControlState.Normal) 
    } 

} 

的UIButton有其不同的状态标题不同的文本。

只为你的知识

viewDidLoad:

btnObject.setTitle("Like", forState: UIControlState.Normal) 
btnObject.setTitle("Unlike", forState: UIControlState.Selected) 

然后在方法actionClick:如果你写的只有一个声明,

sender.selected = !sender.selected; 

它会奏效。

+0

+为答复,这基本上是什么“国家”。为状态配置标题一次,然后切换状态 – Injectios

+0

@injections谢谢,对,这是使用状态的正确方法 –

相关问题