2012-12-12 75 views
3

我做了一個程序,在主視圖中有2個按鈕;刪除以編程方式添加的UIImageView

一個被稱爲節目和另一個是隱藏,

當用戶按下顯示butoon一個imageview的被添加到屏幕

代碼:

-(IBAction)show{ 
    UIImageView *img = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 155, 155)]; 
    img.image = [UIImage imageNamed:@"icon.png"]; 
    [self.view addSubview:img]; 
} 

,並且當用戶按下隱藏按鈕,我想要應用程序隱藏剛剛添加的圖像(img)

但是...

當我使用

-(IBAction)add{ 
    [img removeFromSuperView]; 
} 

Xcode中說:「IMG Undecleared」

編輯:有人說定義對象爲公共對象(@屬性),但問題是,ImageView的被添加一次。但我想它添加新的ImageView每次用戶按下顯示按鈕,

,所以我使用的[自子視圖] objectAtIndex:XX] removeFromSuperview]的方法來解決這個問題

+1

在這裏,因爲你沒有定義全班IMG你得到這個錯誤在這裏你可以展示的方法中存取權限此變量,因爲此變量範圍僅限於顯示方法 –

回答

0

使此的UIImageView的成員你的UIViewController類

+0

關於這個主題的任何教程? – user1846654

+2

Paras Joshi的回答就是一個很好的例子 –

0

你的img對象只在show方法中可見,不在外面..這就是爲什麼。在外面聲明,你的問題就會解決。

+0

no將它設置爲@property或者作爲#import語句之下的全局變量。 –

6

設置一個tag爲您的圖像視圖&然後您可以通過此標記得到它。

[img setTag:123]; 

... 

[[self.view viewWithTag:123] removeFromSuperview]; 
+0

/Users/PoriaX/Desktop/toMake/Classes/toMakeViewController.m:16:0 /Users/PoriaX/Desktop/toMake/Classes/toMakeViewController.m:16:warning:'UIView'may not respond to'-removeFromSuperView' – user1846654

+0

怎麼做:((j – user1846654

+0

@ user1846654哦,它是'removeFromSuperview',而不是'removeFromSuperView'。 – Kjuly

3

創建.h文件中像波紋管UIImageView對象..

UIImageView *img; 

.m文件viewDidLoad:方法只是將它加入像波紋管..

- (void)viewDidLoad 
{ 
    ///your another code 
    img = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 155, 155)]; 
    img.image = [UIImage imageNamed:@"icon.png"]; 
    img.hidden = YES; 
    [self.view addSubview:img]; 
} 

,當顯示按下按鈕顯示圖片

-(IBAction)show{ 
    img.hidden = NO; 
    [self.view bringSubviewToFront:img]; 
} 

和隱藏只是藏像波紋管..

-(IBAction)add{ 
    img.hidden = YES; 
} 
+0

Paras絕對有正確的方法。你可以將'UIImageView * img'放在'{}'後面的接口中,如下所示:'@interface ClassName {UIImageView * img; }'或者像'@property(strong,nonatomic)UIImageView * img'這樣的屬性,''self.img'引用'img'。 – KKendall

+0

@KKendall是的兄弟你是正確的,但我使用簡單的流程,因爲用戶只想隱藏和顯示圖像與單擊按鈕,否則你的邏輯也是正確的兄弟... Thanx .. :) –

+0

@ user1846654你試試我的代碼? ,其工作很好的傢伙.. –

相關問題