Как изменить размер изображения с помощью UIImageView, чтобы можно было увеличивать и уменьшать масштаб? - PullRequest
2 голосов
/ 27 июля 2010

На мой взгляд, у меня есть картинка .. Картинка имеет масштаб 3: 2 и огромна, с точки зрения разрешения.

У меня много проблем с инициализацией UIImage с изображением к оригиналуизмените размер и затем уменьшите UIImageView, чтобы все изображение было видно внутри прокрутки.

Программа остается только в портретной ориентации.

И нет, не говорите простоиспользуйте UIWebView.UIWebView не позволяет мне устанавливать размер содержимого при загрузке просмотра ... вместо этого он просто уменьшает изображение на некотором произвольном масштабе, и я не мог придумать, как настроить значение масштаба (я не думаю, что этовозможно).

Спасибо за любые ответы!Я действительно ценю их: D

Ответы [ 3 ]

10 голосов
/ 27 июля 2010

Вот пример размещения изображения, которое реагирует на масштабирование. По сути, вы помещаете UIImageView в UIScrollView и меняете некоторые настройки.

UIImageView *myImage;
UIScrollView *myScroll;

-(void)viewDidLoad{

  myImage = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,360,450)];
  [myImage setImage:[UIImage imageNamed:@"coolpic.png"]];
  myImage.contentMode = UIViewContentModeScaleAspectFit;
  [myScroll addSubview:myImage];
  [myScroll setContentSize:CGSizeMake(myImage.frame.size.width, myImage.frame.size.height)];
  [myScroll setMinimumZoomScale:1.0];
  [myScroll setMaximumZoomScale:4.0];
}

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
return myImage;
}

Конечно, правильно установите все свои делегаты и хуки IB.

Редактировать: я просто перечитал ваш вопрос. Часть примера, которая отвечает на ваш вопрос, - это спецификация фрейма UIImageView и его настройка contentMode.

1 голос
/ 15 апреля 2013

Перейти на вкладку атрибутов UIImageView.Выберите «аспект, чтобы заполнить» или «аспект, чтобы соответствовать».Если вы используете «аспект для заполнения», вы можете не показать все изображение.Я просто использую «аспект, чтобы соответствовать», и делаю фон черным.

1 голос
/ 27 июля 2010

Вы почти наверняка не хотите загружать свое «огромное, мудрое разрешение» изображение сразу при загрузке, независимо от его масштаба.Я бы посоветовал проверить некоторые примеры кода Apple на эту тему (неплохо было бы начать с ScrollViewSuite ).

Также было опубликовано недавнее видео с WWDC, гдеони реализуют подобные вещи вживую (у них есть больше приложений для просмотра фотографий, но вы можете довольно легко сделать то, что они показывают, только с одним изображением), так что взгляните на это тоже.

...