簡體   English   中英

在TouchUp上將UIButton的狀態更改為UIControlStateSelected

[英]Make UIButton's state change to UIControlStateSelected on TouchUp

我注意到,如果我做這樣的事情

[self setTitle:@"Follow" forState:UIControlStateNormal];
[self setTitle:@"Following" forState:UIControlStateSelected];

該按鈕將以“跟隨”開始。 我按下它,然后放開手指(觸摸事件),它會變為“正在跟隨”。 那很棒。 但是,當現在選擇它並按它時,它會立即變為“跟隨”,然后再松開手指(在觸摸事件中)。 放開手指(觸摸事件)時,我想更改。 我該怎么做呢? 我將UIControlStates用於UIButton的標題,圖像和標題顏色。

以下是我的事件處理程序:

- (void)followButtonAction:(UIButton *)button
{
    button.selected = !button.selected;
}

我將其設置為:

[self.followButton addTarget:self action:@selector(followButtonAction:) forControlEvents:UIControlEventTouchUpInside];

嘗試使用它,這對我來說是一個切換按鈕。

-(IBAction)buttonTapped:(UIButton *)sender{
    if ([sender isSelected]) {
        [sender setSelected:NO];
    }else{
        [sender setSelected:YES];
    }
}

希望這對您也有用。

事實證明,解決方案是為引起問題的組合(被選擇時,然后被按下)添加專門用於組合的另一個控制狀態。 解決方法如下:

[self setTitle:@"Follow" forState:UIControlStateNormal];
[self setTitle:@"Following" forState:UIControlStateSelected];
[self setTitle:@"Following" forState:UIControlStateSelected | UIControlStateHighlighted];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM