2012-06-13 55 views
0

我想用一個按鈕在UIImageView對象中的兩個圖像之間切換。我一直在尋找周圍的一個問題/回答貼近我的具體問題,但有沒有運氣,所以這裏去...如何使用按鈕在UIImageView對象中突出顯示的非高亮圖像之間切換?

MainViewController.h 
IBOutlet UIButton *selectionButton; 
UIImageView *selectionStatus; 
@property(nonatomic, retain) UIButton *selectionButton; 
@property(nonatomic, retain) UIImageView *selectionStatus; 
- (IBAction)selectionButtonPressed: (id)sender; 

MainViewController.m 
@synthesize selectionButton; 
@synthesize selectionStatus; 
- (IBAction)selectionButtonPressed: (id)sender 
{ 
    if (selectionStatus.highlighted == YES) 
     selectionStatus.highlighted = NO; 
    else 
     selectionStatus.highlighted = YES; 
} 

-(void)viewWillAppear:(BOOL)animated { 
    // selection images 
    selectionStatus = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"NotSelected.png"] 
             highlightedImage:[UIImage imageNamed:@"Selected.png"]]; 
} 

當我在模擬器中運行這個,圖像不會出現在「SelectionStatus」,所以我想我錯過了一些大事。非常感謝幫助。謝謝!

我應該多說一下按鈕。 selectionButton是一個自定義按鈕,用於覆蓋selectionStatus圖像視圖以及顯示計算結果的標籤。點擊selectionButton會選擇標籤中的值,以便計算最多三個選定標籤值的平均值。 selectionStatus中顯示的圖像是一個複選標記,根據選擇狀態更改顏色。我發現另一種方法這樣的作品,但似乎並沒有爲優雅:

- (IBAction)selectionButtonPressed: (id)sender 
{ 
    if (toggleValue == YES) { 
     toggleValue = NO; 
     UIImage *unselect = [UIImage imageNamed:@"NotSelected.png"]; 
     selectionStatus.image = unselect; 
    } 
    else { 
     toggleValue = YES; 
     UIImage *select = [UIImage imageNamed:@"Selected.png"]; 
     selectionStatus.image = select; 
    } 
} 

這種方法不需要使用viewWillAppear中,並初始化在viewDidLoad中完成。感謝您的意見和建議。

+0

你是指''dont'出現的圖像是什麼?..在'initWithImage:'之後它是否設置爲'NoteSelected.png'? – skram

回答

0

在ib中,設置按鈕的背景圖像屬性。我認爲您的圖像非常大,實際上,當您將按鈕的狀態設置爲高亮時,它會顯示在按鈕上。 只是嘗試,我不知道。

相關問題