как я могу создать неограниченное количество UIImageViews с нажатием кнопки, к которым я могу обратиться позже? - PullRequest
0 голосов
/ 26 января 2010

Я хочу создать UIImageView нажатием кнопки. Я сделал это с:

- (IBAction) addPicture:(id)sender {
    imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0.0, 45.0, 324, 52.0)];
    imageView.image = [UIImage imageNamed:@"Picture.png"];
    [self.view addSubview:imageView];
}

Я «создал» этот imageView в .h, потому что я хочу использовать ImageView в других методах. Как я могу создать неограниченный UIImageViews в методе с IBAction, который я могу использовать все позже для других методов и так далее ... Каждый imageView должен получить имя, или?

Например, в моей идее приложения пользователь может создавать изображения с помощью кнопки, а затем он выбирает изображение одним касанием и может перемещать его и изменять его размер.

Я знаком с созданием UIImageViews и т. Д., Поскольку до сих пор использовал только предопределенные UIImageViews (с IB) и т. Д. Надеюсь на полезный ответ. Спасибо

Ответы [ 2 ]

3 голосов
/ 26 января 2010

UIView и его подклассы имеют свойство tag для этой цели:

 (IBAction) addPicture:(id)sender { 
    imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0.0, 45.0, 324, 52.0)]; 
    imageView.tag = 100;
    imageView.image = [UIImage imageNamed:@"Picture.png"]; 
    [self.view addSubview:imageView]; 
    [imageView release]; // Do not forget to release your object!
} 

После этого вы можете получить доступ к вашему объекту UIImageView в любом месте вашего контроллера представления:

UIImageView* imView = (UIImageView*)[self.view viewWithTag:100];
0 голосов
/ 28 января 2010

Возможно, вам следует сделать это

NSMuteableArray *arrayOfImageViews = [[NSMuteableArray alloc] init];

//when you are ready to create your image views
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0.0, 45.0, 324, 52.0)];
imageView.tag = x; //some unique number for this image view.
[arrayOfImageViews addObject:imageView];
[self.view addSubview:imageView];
[imageView release];

//you can then create the next view and so on

//to reference the view later you can do either one of these things
//where x is the index of the image view. 
UIImageView *imageView = (UIImageView *)[arrayOfImageViews objectAt:x];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...