Utilisation de isKindOfClass: Je ne comprends pas pourquoi ce code se comporte de cette façon
-(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");
}
}
}
Je m'attendais à la sortie de la "élément est une UIImageView, mais c'est en fait l'élément n'est PAS une UIImageView. Pourquoi? Ce n'est pas qu'il existe d'autres sous-vues. Il n'y en a qu'une. En outre, lorsque vous exécutez, l'image est affichée à 100,100, pas 500,500 comme prévu.
source d'informationauteur Victor Engel
Vous devez vous connecter pour publier un commentaire.
Votre chèque est faux. Vous devriez appeler
isKindOfClass:
sur l'objet et non pas sur la classe de l'objet.Essayez le code Suivant.
Vous pouvez également consulter les sous vues en valeur du tag: