【发布时间】:2012-11-17 03:42:21
【问题描述】:
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
imageView.image = [UIImage imageNamed:@"Sample.png"];
[self.view addSubview:imageView];
NSArray *subviews = [self.view subviews];
for(id element in subviews) {
if ([[element class] isKindOfClass:[UIImageView class]]) //check if the object is a UIImageView
{
NSLog(@"element is a UIImageView\n");
[element setCenter:CGPointMake(500., 500.)];
} else {
NSLog(@"element is NOT a UIImageView\n");
}
}
}
我预计输出是“元素是UIImageView,但它实际上元素不是UIImageView。为什么?不是有其他子视图。只有一个。此外,运行时,图像显示在100,100 ,而不是预期的 500,500。
【问题讨论】:
-
我尝试简单地更改代码以使用UIImageView而不是id,结果是一样的。
-
id 可以作为参考。您缺少的是您以错误的方式调用 isKindOfClass 方法。检查我的答案。
标签: ios uiimageview nsarray