在iPhone中以编程方式添加多个图像

时间:2011-03-23 09:07:36

标签: iphone

我想在我的视图上添加大约80个imageview,然后想要非常频繁地更改图像(每秒多次,使用音频表)。我使用以下代码添加了图像:

-(void)drawAudioMeter {
UIImageView *imgvw = nil;
int x = 1;
for(int i = 0; i<80; i++) {
    imgvw = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"line_dull.png"]];
    imgvw.tag = i+100;
    imgvw.frame = CGRectMake(x, 400, 3, 30);
    x = x + 4;
    [self.view addSubview:imgvw];
    [imgvw release];
}

}

现在我将如何更改图像视图中的图像,因为我没有任何图像视图的名称。在所有图像上每秒使用一个for循环对我来说看起来不是一个可行的选择。有人可以指出我应该怎么做?

感谢
的Pankaj

3 个答案:

答案 0 :(得分:1)

您可以使用viewWithTag按标签

获取特定图像
UIIMageView *image = [UIView viewWithTag:1];
  

viewWithTag:返回其视图   tag属性包含指定的   整数值。

     
      
  • (UIView *)viewWithTag:(NSInteger)tag参数tag要搜索的标记值   对于。返回值中的视图   接收者的标签层次结构   property匹配标记中的值   参数。
  •   
     

讨论此方法搜索   当前视图及其所有子视图   对于指定的视图。

     

可用性在iOS 2.0和iOS中可用   后来。另请参见@property标记   相关的示例代码GenericKeychain   SeismicXML在UIView.h中声明

取自:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html

答案 1 :(得分:0)

在.h文件中创建UIImageView数组

UIImageView* imgvw[80];

在viewDidLoad中的forloop中创建imgvw。 并删除for循环中图像视图的创建和释放。因此,在drawAudioMeter中,您可以在for循环中获取图像视图的对象并相应地更改图像。

答案 2 :(得分:0)

我认为通过80 UIImage绘制音频表并不是一个好主意......也许你应该看看Apple的SpeakHere示例他们是如何做到这一点的。打开Xcode,打开帮助(选项-cmd-?)并搜索SpeakHere。这是一个用音频表录制/播放音频的例子。