2012-05-09 6 views
2

Я хочу создать Scrollview, который работает точно, как вы панорамирования/увеличения изображения в приложении Photo:Возможно ли реализовать UIScrollView с масштабируемым и подходящим контентом?

-A пейзаж изображение является аспект поместится на экране портрет,

, Вы можете увеличить масштаб изображения в ,

-Если повернуть устройство наведена (пейзаж), изображение остается в середине,

-И при увеличении масштаба, изображение по-прежнему аспект вписывается в новом ландшафтном экране (натяжные полный экран) ,

Так что мне нужен аспект, подходящий и масштабирующий возможности сразу.

Я реализовал решение, в котором я размещаю содержимое прокруткиView «вручную» в layouSubviews, чтобы соответствовать аспекту, но это мешает изменению масштаба.

Есть ли опрятный способ UIKit справиться с этим? Или мне нужно создать свою собственную реализацию здесь?

+0

Вы когда-нибудь получали ответ на этот вопрос, я думаю, что у меня такая же проблема –

ответ

0

Вам необходимо включить масштабирование (и установить масштаб макс. И макс. Масштабирования), а затем реализовать scrollViewDidZoom. Вот пример кода, который поможет вам начать работу с центрированием изображения. Вы можете настроить его, чтобы сделать другие части:

- (void)scrollViewDidZoom:(UIScrollView *)scrollView 
{ 
    CGSize boundsSize = scrollView.bounds.size; 
    CGRect frameToCenter = imageView.frame; 

    // center horizontally 
    if (frameToCenter.size.width < boundsSize.width) 
     frameToCenter.origin.x = (boundsSize.width - frameToCenter.size.width)/2; 
    else 
     frameToCenter.origin.x = 0; 

    // center vertically 
    if (frameToCenter.size.height < boundsSize.height) 
     frameToCenter.origin.y = (boundsSize.height - frameToCenter.size.height)/2; 
    else 
     frameToCenter.origin.y = 0; 

    imageView.frame = frameToCenter; 
} 

Примечание: этот код предполагает, что вы держите ссылку на UIImageView (ImageView в данном примере) в вашем UIScrollView.

+0

Я не хочу центрировать изображение, я хочу сохранить только увеличенную часть. Но главное - сохранить аспект, который означает, что масштаб содержимого изменяется, когда пользователь поворачивает устройство. Просто взгляните на приложение «Фото». – Geri