2013-03-25 31 views
0

我剛開始學習的Xcode和Objective C的基礎知識,我想提出一個基本的火炬應用爲出發點。如何引用的UIImageView(Xcode中的iOS)

我已經拿起大部分事物的基礎知識,但我不知道如何從一個單獨的行動(我不知道,如果這個術語是正確的)作出其他元素的引用。

例如:

- (IBAction)screenButtonClicked:(id)sender { 
    UIButton *button = (UIButton *)sender; 
    if (_ScreenOnOff) { 
     [self.view setBackgroundColor:[UIColor blackColor]]; 
     [button setTitle:@"Screen (Off)" forState: UIControlStateNormal]; 
    } 
    else { 
     [self.view setBackgroundColor:[UIColor whiteColor]]; 
     [button setTitle:@"Screen (On)" forState: UIControlStateNormal]; 
    } 
    _ScreenOnOff = !_ScreenOnOff; 
} 

我有哪些鏈接到故事板的按鈕,和我有我想要顯示和隱藏(取決於是否的)一個UIImageView。

我到處找關於如何做到這一點,並把它儘可能多的方式,我可以到谷歌,但沒有運氣。

這可能是目標C一小步,但請大家幫忙,因爲它會教我。

在此先感謝。

回答

3

聲明爲的UIImageView一個IBOutlet在頭文件:

@property (weak) IBOutlet UIImageView *myImageView; 

在此之後,的UIImageView連接到這個IBOutlet中在界面生成器。

然後,您可以參考(和隱藏),如:

self.myImageView.hidden = _ScreenOnOff; 
在實現文件


參見:Creating and Connecting an Outlet

0

這個動作可能是由您的視圖控制器擁有。如果您的視圖控制器有一個名爲「ImageView的」一個UIImageView屬性,你可以從你的行動中訪問它就像你正在與_ScreenOnOff做。

要隱藏圖像視圖,你可以做這樣的事情:

self.imageView.hidden = YES; 

注意,它使用self.imageView和self.ScreenOnOff而不是由_imageView直接訪問屬性是很重要的。當你在你的類中聲明一個屬性(不管它是否是IBOutlet)時,編譯器會將訪問器方法合成到該屬性中(get和set)。所以當你打電話給self.ScreenOnOff時,它會和[ScreenOnOff]做類似的事情。

唯一的地方,你會通過直接訪問屬性「_」在init和dealloc的方法。 ' - (void)viewDidLoad'是init方法的類型。我想你想是這樣的:

- (IBAction)screenButtonClicked:(id)sender { 
UIButton *button = (UIButton *)sender; 
if (self.ScreenOnOff) { 
    [self.view setBackgroundColor:[UIColor blackColor]]; 
    [button setTitle:@"Screen (Off)" forState: UIControlStateNormal]; 
    self.imageView.hidden = YES; 
} 
else { 
    [self.view setBackgroundColor:[UIColor whiteColor]]; 
    [button setTitle:@"Screen (On)" forState: UIControlStateNormal]; 
    self.imageView.hidden = NO; 
} 
self.ScreenOnOff = !self.ScreenOnOff; 

}

我希望幫助。