【发布时间】:2012-01-09 22:45:55
【问题描述】:
我想在我的程序中切换显示图像。这是我的代码简化:
UIImage *newImage = [UIImage imageNamed:@"selected.png"];
UIImageView *selector = [[UIImageView alloc] initWithImage: newImage];
[selector setFrame: CGRectMake( 0, 0, 64, 64)];
[overView addSubview: selector];
[overView bringSubviewToFront: selector];
selector.hidden = TRUE;
[newImage release]
后面的代码:
-(IBAction)Button1Click
{
selector.hidden = FALSE;
}
-(IBAction)Button2Click
{
selector.hidden = TRUE;
}
稍后:
[selector release];
当我运行并单击两个按钮时,“选择器”图像永远不会出现。如果我调试程序,我可以看到程序到达 IBActions 下的行,但它没有效果。奇怪的是:如果我早早设置线路:
selector.hidden = FALSE;
然后我可以一直看到“选定”的图像,无论我按什么按钮,它都不会关闭。有什么想法吗?
更新: 我知道代码中不清楚,但“选择器”在所有代码中都在同一范围内。添加“自我”。到“选择器”解决了这个问题。谢谢!
【问题讨论】:
-
不确定这是否与您的问题有关,但您不应该释放从
imageNamed:返回的图像(它已经自动释放)。在 Objective-C 中,您通常还使用YES和NO而不是TRUE和FALSE。使用addSubview:后,bringSubviewToFront:是不必要的,因为无论如何它都会将其添加为最顶层的子视图。 -
如果
selector实际上在范围内以及它在不同点实际指的是什么,提供的代码不清楚 -
不要将标题更新为 SOLVED - 您已接受答案,每个人都可以看到。 (干得好!)
标签: ios cocoa-touch uikit uiimageview