我想在我的视图上添加大约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
答案 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中声明
答案 1 :(得分:0)
在.h文件中创建UIImageView数组
UIImageView* imgvw[80];
在viewDidLoad中的forloop中创建imgvw。 并删除for循环中图像视图的创建和释放。因此,在drawAudioMeter中,您可以在for循环中获取图像视图的对象并相应地更改图像。
答案 2 :(得分:0)
我认为通过80 UIImage绘制音频表并不是一个好主意......也许你应该看看Apple的SpeakHere示例他们是如何做到这一点的。打开Xcode,打开帮助(选项-cmd-?)并搜索SpeakHere。这是一个用音频表录制/播放音频的例子。