2013-08-03 17 views
0

UIButton操作方法在執行時不顯示任何結果。基本上UIButton在默認狀態下顯示的是按下UIButton時的書籤N圖像,它應該用Bookmark-YES圖像取代書籤N。UIButton操作方法沒有做任何事

當按下UIButton時,它並沒有替換圖像,實際上沒有做任何事情。

@property (weak, nonatomic) IBOutlet UIButton *bookmarkbtn; 

- (IBAction)bookmarkAction:(id)sender; 


- (IBAction)bookmarkAction:(id)sender { 

if (_bookmarkbtn.tag) 

{ 
    [_bookmarkbtn setImage:[UIImage imageNamed:@"Bookmark-Y.png"] forState:UIControlStateNormal]; 
} 
else 
{ 
    [_bookmarkbtn setImage:[UIImage imageNamed:@"Bookmark-N.png"] forState:UIControlStateNormal]; 
} 
} 

我認爲有些事情有這種說法

if (_bookmarkbtn.tag) 

因爲這種說法做的,如果這是真的只有那麼它會執行休息。

任何想法請如何解決此聲明。

+0

你的按鈕連接到在Interface Builder中IBAction爲? –

+0

是的,它已連接。 – user1120133

+0

編輯:當你在if上放置斷點時會發生什麼? 'tag'的價值是什麼,它是一個nsinteger btw,而不是布爾值。 –

回答

1

示例代碼:

- (IBAction)bookmarkAction:(id)sender 
{ 
    if (_bookmarkbtn.tag) 
    { 
      [_bookmarkbtn setImage:[UIImage imageNamed:@"Bookmark-Y.png"] forState:UIControlStateNormal]; 
      _bookmarkbtn.tag = 0; 
    } 
    else 
    { 
      [_bookmarkbtn setImage:[UIImage imageNamed:@"Bookmark-N.png"] forState:UIControlStateNormal]; 
      _bookmarkbtn.tag = 1; 
    } 
} 
+0

爲什麼在事件之後設置標籤?你想製作一個切換按鈕嗎? –

2

首先設置按鈕選擇圖像和正常圖像。

 [_bookmarkbtn setImage:[UIImage imageNamed:@"Bookmark-N.png"] 
      forState:UIControlStateNormal]; 
     [_bookmarkbtn setImage:[UIImage imageNamed:@"Bookmark-Y.png"] 
      forState:UIControlStateSelected]; 

並將按鈕狀態更改爲當按鈕按下時選中。 使用_bookmarkbtn標記檢查發件人標記。

- (IBAction)bookmarkAction:(id)sender { 

     if (_bookmarkbtn.tag == sender.tag) 

     { 
     _bookmarkbtn.selected = !_bookmarkbtn.selected; 
    } 

} 
+0

當我使用這個語句if(_bookmarkbtn.tag == sender.tag)時,它給了我錯誤的屬性標籤,我定義了BOOL BOOL isSelected;並使用,如果(_bookmarkbtn.isSelected ==是)但仍然無法正常工作。 – user1120133

+0

嘗試將IBOutlet參考視爲較強... – Krishna

+0

我確實更改了按鈕的狀態,但仍然不起作用 – user1120133