2012-06-02 60 views
0

我有一個設置放置故事板的UIButton的imageView屬性的方法。它設置後,它看起來很好。但是,輕觸按鈕時,其高亮狀態會將imageView的圖像屬性更改回舊圖像。我如何阻止這種情況發生?這裏是我的方法:如何在按下時阻止UIButton的imageView更改?

- (void)setThumbButtonPhoto:(UIImage *)image 
{ 
    // profilePhoto is an IBOutlet property of class UIButton pointing to the 
    // UIButton on my storyboard. 

    // Button image is changed correctly here 
    profilePhoto.imageView.image = image; 

    // But then mysteriously changed back to the old image when tapped. 
    // The following commented out lines I have all tried (one at a time of course) 
    // and none have solved my problem --> 

    // [profilePhoto.imageView setHighlightedImage:nil]; 
    // profilePhoto.imageView.highlightedImage = image; 
    // profilePhoto.adjustsImageWhenHighlighted = NO; 
    // [profilePhoto setBackgroundImage:image forState:UIControlStateHighlighted]; 
    // [profilePhoto setImage:image forState:UIControlStateNormal]; 
    // [profilePhoto setImage:image forState:UIControlStateHighlighted]; 
    // [profilePhoto setImage:image forState:UIControlStateSelected]; 
} 
+0

取消註釋所有這三個線 // [profilePhoto setImage的:圖像forState :UIControlStateNormal]; // [profilePhoto setImage:image forState:UIControlStateHighlighted]; // [profilePhoto setImage:image forState:UIControlStateSelected]; 在一起運行,並告訴我發生了什麼 –

+0

它改變了按鈕的背景圖像,而不是像我想要的內部imageView圖像。 – zakdances

回答

0

使用的UIImageView保存圖像

,把一個自定義模式的UIButton,沒有文字,沒有圖片,沒有背景;在它之下

2

您應該使用此方法來正確設置圖片上的按鈕: - (void)setImage:(UIImage *)image forState:(UIControlState)state

所以:

[profilePhoto setImage:image forState:UIControlStateNormal]; 
[profilePhoto setImage:image forState:UIControlStateHighlighted]; 
+0

這些行會更改按鈕的整個背景圖像,而不是按鈕內的圖像。 imageView屬性指向按鈕的圖像INSIDE(有點像圖標)。當我在profilePhoto上使用setImage時,它會更改整個按鈕的背景圖像。 – zakdances

相關問題