2011-02-11 34 views
7

嗨,我的應用程序中有一個ImageView,我希望用戶能夠通過單擊按鈕來更改該圖像視圖中的圖像。這是我得到的代碼使用按鈕更改UIImage視圖的圖像

在.H

@interface BGViewController : UIViewController { 

    IBOutlet UIImageView *image; 

} 

@property (nonatomic, retain) IBOutlet UIImageView *image; 

-(IBAction)img1:(id)sender; 
-(IBAction)img2:(id)sender; 

和.M

@synthesize image; 

-(IBAction)img1:(id)sender; { 

    UIImage *image = [UIImage imageNamed: @"Main.png"]; 

} 

-(IBAction)img2:(id)sender; { 

    UIImage *image = [UIImage imageNamed: @"Themes.png"]; 


} 

存在通過每路圖像的一個按鈕!

該應用程序構建,但是當我點擊其中一個按鈕時,發生了一件事。

+0

您應該爲您的UIImageView的ImageView和你的UIImage圖像以避免混亂。 – clocksmith 2014-08-18 23:37:12

回答

10

更換

UIImage *image = [UIImage imageNamed: @"Main.png"]; 

UIImage *image = [UIImage imageNamed: @"Themes.png"]; 

image.image = [UIImage imageNamed:@"Main.png"]; 

image.image = [UIImage imageNamed:@"Themes.png"]; 

現在應該很好地工作:)

3

只需設置UIImageViewimage屬性:

imageView.image = [UIImage imageNamed:@"Themes.png"]; 

你也有一個語法錯誤在你的方法實現,你的方法簽名後襬脫分號(;)的。

如果我在設計這個類,我會使用一個行動的方法和使用該sender參數索引的tag屬性成NSString對象的數組。 (對於第一個按鈕時,tag0,而第二個是1等)

您應該將UIImageView伊娃重命名爲imageView,以減少歧義。

@interface BGViewController : UIViewController { 
    IBOutlet UIImageView *imageView; 
} 

@property (nonatomic, retain) IBOutlet UIImageView *imageView; 

-(IBAction)changeImage:(id)sender; 

@end 

@implementation BGViewController 

NSString *images[] = { 
    @"Main.png", 
    @"Themes.png" 
}; 

@synthesize imageView; 

-(IBAction)changeImage:(id)sender { 
    imageView.image = [UIImage imageNamed: images[sender.tag]]; 
} 

@end 
+0

好的,謝謝!如果我想用UIScrollView更改圖像,我該怎麼做? – Tapy 2011-02-11 19:48:59