簡體   English   中英

UIButton:背景圖像設置突出顯示按鈕狀態時出現問題?

[英]UIButton : Background Image setting Issue when button state is highlighted?

我有一個UIButton,點擊按鈕時需要更改按鈕的圖像。 按鈕的背景圖像在ViewDidLoad方法中設置。 請參考附加在此線程上的圖像。

  1. 當我第一次點擊按鈕時,按鈕屬性將更改為選中狀態,並且“ arrow_right.png”圖像將設置為我們的按鈕。

在此處輸入圖片說明

2.在第二次點擊時,我觀察到當按鈕狀態突出顯示時,但未設置背景圖像。 您可以看到一些模糊效果。

在此處輸入圖片說明

我擔心的是,我在切換UIButton時看到了圖像未設置為突出顯示狀態的情況。 當按鈕的狀態從“已選擇”變為“正常”時。 是錯誤還是我的錯誤?

謝謝。

- (void)viewDidLoad
{
  [super viewDidLoad];

  [testButton setBackgroundImage:[UIImage imageNamed:@"btn_normal.png"] forState:UIControlStateNormal];
  [testButton setBackgroundImage:[UIImage imageNamed:@"btn_pressed.png"] forState:UIControlStateSelected];
  [testButton setBackgroundImage:[UIImage imageNamed:@"btn_pressed.png"] forState:UIControlStateHighlighted];

}
- (IBAction)buttonPressed:(id)sender 
{
  UIButton *button = (UIButton*)sender;
  button.selected = !button.selected;

  if (button.selected)
  {
      [button setImage:[UIImage imageNamed:@"arrow_right.png"] forState:UIControlStateNormal];
      [button setImage:[UIImage imageNamed:@"arrow_right.png"] forState:UIControlStateHighlighted];
      [button setImage:[UIImage imageNamed:@"arrow_right.png"] forState:UIControlStateSelected];
  }
  else
  {
      [button setImage:[UIImage imageNamed:@"arrow_left.png"] forState:UIControlStateNormal];
      [button setImage:[UIImage imageNamed:@"arrow_left.png"] forState:UIControlStateHighlighted];
      [button setImage:[UIImage imageNamed:@"arrow_left.png"] forState:UIControlStateSelected];
  }
}

嘗試這個

- (IBAction)buttonPressed:(id)sender 
{
  UIButton *button = (UIButton*)sender;
 if(button.selected) {
 [button setSelected:NO]
} else {
 [button setSelected:YES]
}

}

我不明白為什么您需要再次設置圖像,所有您需要做的就是設置其selected屬性,按鈕將按預期運行

暫無
暫無

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

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