-(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如預期使用isKindOfClass:?我不明白爲什麼這個代碼是表現這樣
我試着簡單的改變代碼來使用UIImageView而不是id,結果是一樣的。可以使用 –
id作爲參考。你錯過的是你以錯誤的方式調用isKindOfClass方法。檢查我的答案。 –