0

我有一個自定義的UICollectionViewCell,它擁有一個圖像集的UIButton。此底部的目的是允許通過應用程序購物的用戶將項目添加到他們最喜歡的項目列表中。如何在點擊時更改自定義UICollectionViewCell屬性的UIButton的UIImage?

我有2個版本的圖像。一個是默認的灰心,另一個是黑心。當用戶點擊一個項目添加到自己喜愛的這個方法被觸發:

- (void)addToFavouritesButtonTapped 
{ 
    NSLog(@"add to favourites button tapped"); 
} 

在我爲我的UICollectionView cellForItemAtIndexPath方法我有這樣的:對心臟的自來水

法進行燒結

_addToFavouritesButton = [cell addFavouriteButton]; 
    [_addToFavouritesButton addTarget:_thisController action:@selector(addToFavouritesButtonTapped) forControlEvents:UIControlEventTouchUpInside]; 

在輕敲心臟將項目保存到收藏夾我希望圖像更改爲我突出顯示的版本,這是黑色的心臟。

我該如何做到這一點?

回答

0

設置其它圖像作爲一個用於UIControlStateSelected,然後當該按鈕被點擊設置按鈕以selected= YES,那麼這將改變圖像。

_addToFavouritesButton = [cell addFavouriteButton]; 
[_addToFavouritesButton addTarget:_thisController action:@selector(addToFavouritesButtonTapped:) forControlEvents:UIControlEventTouchUpInside]; 
[_addToFavouritesButton setImage:blackHeart forState:UIControlStateSelected]; 

- (void)addToFavouritesButtonTapped:(UIButton *)sender 
{ 
    NSLog(@"add to favourites button tapped"); 
    sender.selected = YES; 
} 
+0

如何跟蹤所選按鈕?每次我滾動它時,新更新的心臟都不是我最初修改的心臟。 – LondonGuy

+0

你可能想要[this]這樣的東西(http://stackoverflow.com/questions/9274494/how-to-know-the-uitableview-row-number)。 而你需要某種存儲方式來存儲你喜歡的項目,你可以在'cellForItemAtIndexPath' – Rich

0

您可以使用按鈕狀態顯示不同的圖像。檢查UIButton的文檔,有一種方法setImage:forState:,您可以使用它來設置圖像爲正常狀態,突出顯示狀態,選定狀態。 你甚至可以在Interface Builder中做到這一點。

在一個側面說明,如果你想做些別的事情與按鈕,一旦它的壓制,你應該做到以下幾點:

附加:對選擇

[_addToFavouritesButton addTarget:_thisController action:@selector(addToFavouritesButtonTapped:) forControlEvents:UIControlEventTouchUpInside]; 

收到的UIButton在方法中

- (void)addToFavouritesButtonTapped:(UIButton *)sender 

然後你可以操縱該方法中的按鈕

相關問題