Je pratique le code débutant depuis que je suis nouveau et je viens de rencontrer beaucoup de confusion ici ... c'est ce que j'ai jusqu'à présent
UIView *catView = [[UIView alloc] init];
UIImage *image = [UIImage imageNamed:@"lolcat.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[catView.view addSubview:imageView];
Je ne comprends pas quoi et pourquoi quelque chose ne va pas ici, quelqu'un peut-il aider?
//You need to specify the frame of the view
UIView *catView = [[UIView alloc] initWithFrame:CGRectMake(0,0,320,400)];
UIImage *image = [UIImage imageNamed:@"lolcat.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
//specify the frame of the imageView in the superview , here it will fill the superview
imageView.frame = catView.bounds;
// add the imageview to the superview
[catView addSubview:imageView];
//add the view to the main view
[self.view addSubview:catView];
Note intéressante et subtile. Si les vues ont déjà été ajoutées dans un fichier .xib, elles sont "faibles" et vous devez les échanger avec une variable temporaire. Également, quelques calculs simples pour obtenir les coordonnées correspondant à celles que vous avez définies dans votre vue:
@property (weak, nonatomic) IBOutlet UIImageView *imageView1;
@property (weak, nonatomic) IBOutlet UIImageView *imageView2;
CGRect tempFrame;
tempFrame = self.imageView1.frame;
CGRect tempFrame; // use bounds instead
tempFrame = self.imageView2.frame;
__strong UIImageView * tempView = self.imageView2;
[self.imageView2 willMoveToSuperview: nil];
[self.imageView2 removeFromSuperview];
[self.imageView2 willMoveToSuperview: self.imageView1];
[self.imageViewSkate addSubview: self.imageViewBall];
self.imageView2.frame = CGRectMake(tempFrame.Origin.x - self.imageView1.frame.Origin.x,
tempFrame.Origin.y - self.imageView1.frame.Origin.y,
tempFrame.size.width, tempFrame.size.height);
tempView = nil;