2013-03-25 60 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; 

}

我希望帮助。