-(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");
}
}
}
mi aspettavo l'uscita di essere "elemento è un UIImageView, ma in realtà è elemento non è un UIImageView perché non è che ci sono altri .. subviews un solo V'è, inoltre, quando viene eseguito, l'immagine viene visualizzata a 100,100, non 500.500 come previstoUtilizzando isKindOfClass:.? Non capisco il motivo per cui questo codice si comporta in questo modo
Ho provato semplicemente a modificare il codice per utilizzare UIImageView anziché id e i risultati erano gli stessi. L'ID –
può essere utilizzato come riferimento. Quello che ti manca è che stai chiamando isKindOfClass metodo in modo sbagliato. Controlla la mia risposta. –