Как увеличить UIImageView при нажатии - PullRequest
4 голосов
/ 30 марта 2012

Я очень новичок в программировании, поэтому у меня возникают некоторые проблемы при попытке сделать это. У меня есть приложение, которое отображает изображение в UIImageView, и я хотел бы, чтобы изображение увеличилось, когда пользователь нажимает на него. Я подумал, что самый простой способ сделать это - скрыть полупрозрачную кнопку над UIImageView и запустить действие, когда пользователь нажимает на нее. Это примерно настолько, насколько я могу получить, я понятия не имею, как должен выглядеть мой метод действия. Это то, что я до сих пор:

- (IBAction)enlargeImage1:(id)sender {
    CGRect myImageRect = CGRectMake(0.0f, 0.0f, self.view.frame.size.width, 80.0f); 
    UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect]; 
    [myImage setImage:[UIImage imageNamed:@"gradient-253x80.png"]]; 
    [self.view addSubview:myImage];

}

Мой UIImageView называется imageView, и я прикрепил вышеуказанный метод к кнопке UIB, которая находится над imageView. Когда я нажимаю на изображение, оно не увеличивается вообще. Любая помощь или совет высоко ценится, спасибо!

1 Ответ

4 голосов
/ 30 марта 2012

Есть два способа приблизиться к этому. Вы могли бы иметь прозрачную кнопку, поскольку вы видите, которая реагирует на нажатие, и под ней находится изображение.

Другим подходом было бы просто покончить с UIImageView и просто иметь UIButton. Вы можете установить тип кнопки в вашей xib / раскадровке, чтобы быть пользовательской кнопкой. Затем вы можете установить изображение кнопки или фоновое изображение в конструкторе интерфейса. Все, что вам нужно, это подключить кнопку к действию.

Ваше действие может быть примерно таким в вашем заголовочном файле:

- (IBAction)buttonTapped:(id)sender;

В вашей реализации вам просто нужно изменить фрейм UIImageView или UIButton в зависимости от вашего подхода.

- (IBAction)buttonTapped:(id)sender {
    UIButton *button = (UIButton *)sender;
    [button setFrame:CGRectMake(0, 0, 100, 100)];
    // or [yourImageViewName setFrame:CGRectMake(0, 0, 100, 100)];
}

Вам нужно будет настроить значения в CGRectMake в соответствии с вашими потребностями. Первые два аргумента - это координаты x и y того места, где кнопка / изображение появляется в родительском представлении. Вторые два аргумента - ширина и высота кнопки / изображения.

Надеюсь, это поможет.

* РЕДАКТИРОВАТЬ Вы подключили UIImageView к розетке в вашем заголовочном файле?

в вашем методе вместо создания другого изображения вы должны просто изменить размер существующего. Вы можете сделать это следующим образом:

[self.imageView setFrame:CGRectMake(0, 0, self.view.frame.size.width, 80)];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...