0

我刚刚开始学习 Xcode 和 Objective C 的基础知识,并且我正在制作一个基本的 Torch 应用程序作为起点。

我已经掌握了大部分基础知识,但我不知道如何从单独的操作中引用另一个元素(我不知道这个术语是否正确)。

例如:

- (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 我想显示和隐藏(取决于 if)。

我到处寻找如何做到这一点,并尽可能多地把它放到谷歌中,但没有运气。

这可能是 Objective C 中的一个小步骤,但请帮助,因为它会教我。

提前致谢。

4

2 回答 2

3

在头文件中为 UIImageView 声明一个 IBOutlet:

@property (weak) IBOutlet UIImageView *myImageView;

之后,将 UIImageView 连接到 Interface Builder 中的此 IBOutlet。

然后,您可以像这样引用(并隐藏它):

self.myImageView.hidden = _ScreenOnOff;

在你的实现文件中。


另请参阅:创建和连接插座

于 2013-03-25T12:58:04.727 回答
0

此操作可能归您的视图控制器所有。如果您的视图控制器有一个名为“imageView”的 UIImageView 属性,您可以像使用 _ScreenOnOff 一样从您的操作内部访问它。

要隐藏您的图像视图,您可以执行以下操作:

self.imageView.hidden = YES;

请注意,使用 self.imageView 和 self.ScreenOnOff 而不是通过 _imageView 直接访问该属性很重要。当你在你的类中声明一个属性时(不管它是否是 IBOutlet),编译器会合成该属性的访问器方法(get 和 sets)。因此,当您调用 self.ScreenOnOff 时,它与 [self 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;

}

我希望这会有所帮助。

于 2013-03-25T13:23:07.603 回答