2014-01-14 71 views
0

我在viewcontroller中顯示UIButton,它包含在navigationcontroller中。 問題是,當使用推送轉換出現視圖時,按鈕閃爍。當在viewDidLoad中使用setBackgroundImage時,UIButton會閃爍

我已經研究過SO上的現有解決方案,但它們都沒有工作。

-(void)viewDidLoad{ 
//call to super 

[button setBackgroundImage:[UIImage imageNamed:@"NormalImage"] forState:UIControlStateNormal]; 
[button setBackgroundImage:[UIImage imageNamed:@"SelectedImage"] forState:forState:UIControlStateSelected]; 
[button setBackgroundImage:[UIImage imageNamed:@"SelectedImage"] forState:UIControlStateHighlighted]; 

} 

1)我試着用setImage代替,這是行不通的。事實上,它根本不顯示圖像。 2)禁用動畫作品viewdidload(並啓用viewDidAppear),但它也禁用導航控制器動畫。 [UIViews setAnimationsDisabled];

+0

請問您可以顯示截圖嗎? – nvl

+0

也嘗試將這些代碼放入'viewDidAppear:' – nvl

+0

@NovalAgungPrayogo屏幕截圖無法幫助,因爲兩幅圖像之間的轉換時間很短。我試圖將代碼放在viewDidAppear中,但在viewDidappear中更改圖像時看起來不太好。 –

回答

0

您是否通過Interface Builder爲您的按鈕指定了不同的背景圖像? 這裏可能發生的情況是,您的按鈕在Interface Builder中分配了一組不同的圖像,並且在視圖加載並且可能已經顯示後您正在更改背景,因此您會看到閃爍。 我建議儘可能直接在你的xib文件中配置你的按鈕。

+0

我沒有使用xib。該按鈕是通過代碼生成的。 –

相關問題