![](/img/trans.png)
[英]Create highlighted state background image programmatically for UIButton
[英]UIButton : Background Image setting Issue when button state is highlighted?
我有一個UIButton,點擊按鈕時需要更改按鈕的圖像。 按鈕的背景圖像在ViewDidLoad方法中設置。 請參考附加在此線程上的圖像。
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.