从View以编程方式获取UIImageView。

时间:2011-10-14 12:31:58

标签: uiview uiimageview

我正在代码中创建一个UIImageView,我希望以后能够得到它并设置一个图像。我该怎么做才能帮忙?

for (int x = 1; x <= 5; x++) {
UIImageView *Game_ImageViews = [[UIImageView alloc] 
                            initWithFrame:CGRectMake(0, 0, 100, 100)];
    Game_ImageViews.tag = x;
    [Game_View addSubview:Game_ImageViews];
}


            UIImage *image = [[UIImage alloc] initWithContentsOfFile:[[[NSBundle mainBundle] resourcePath]      
                                                                  stringByAppendingPathComponent:@"Test.png"]];
        (UIImageView*)[self.view viewWithTag:100].image = image;
        [image release];

1 个答案:

答案 0 :(得分:0)

如果存在具有该标记的子视图,

viewWithTag将为您提供带标记的视图。例如,您的self.view必须有一个标记为100的子视图。

最初,您要设置Game_View的子视图,标记为1,2,3,4,5。

因此,要按标记检索子视图,您必须这样做,假设您要检索由标识1标记的视图:

 ((UIImageView*)[Game_View viewWithTag:1]).image = image;

还有一些值得一提的事情。你没有在上面的循环中释放Game_ImageViews,所以这会导致内存泄漏。

此外,如果您使用imageNamed的{​​{1}}方法,那么这将为您带来一些好处。首先,您将拥有一个可以提高性能的缓存图像。其次,你将有一个自动释放的对象,这可以节省你自己释放它的麻烦。当然,除非你像上面那样想要获得最大的性能和控制力。