重新加载数据后更改UIButton文本

时间:2019-05-25 03:39:24

标签: ios swift uitableview uicollectionview uibutton

我在UIButton中有一个UICollectionView,我想更改其文本。但是有一个问题,在单击它之后,collectionView会重新加载其数据,因此文本将更改一秒钟,然后返回到第一个。

代码:

 @IBOutlet weak var showMorebtn: OButton!
 @IBAction func pressShowMoreBtn(_ sender: OButton) {
    askForChangingheightOfCell?()
    showMorebtn.setTitle("Show more", for: .normal)
    showMorebtn.setTitle("Show less", for: .highlighted)

感谢您的提前帮助

2 个答案:

答案 0 :(得分:0)

首先,声明一个变量以存储按钮状态,并根据该状态更改按钮标题

var isShowMore = false

func onButtonTapped(){
    isShowMore = !isShowMore

    if isShowMore{
        showMorebtn.setTitle("Show less", for: .highlighted)
    }else{
        showMorebtn.setTitle("Show more", for: .normal)
    }

    collectionView.reloadData()
}

答案 1 :(得分:0)

您已为button而不是.selected的{​​{1}}设置了新标题

.highlighted仅在单击UiButton时处于.highlighted状态,然后在UiButton之后又回到touchEnds状态,然后必须定义您的将.normal的{​​{1}}代码更改为

例如

title