2013-02-20 1 views
2

Я пытаюсь настроить простой вид, который отображает изображение и позволяет пользователям увеличивать/уменьшать изображение и панорамировать изображение по своему усмотрению. У меня включен автозапуск, а представление состоит из UIScrollView со встроенным UIImageView. Оба вида имеют размер всего экрана.iOS 6 Autolayout - ScrollView со встроенным ImageView не правильно масштабируется

Я использовал логику и код из ScrollViewSuite от Apple (образец «1_TapToZoom»), и все кажется правильным. Однако при сжатии представления ScrollView/ImageView получает все искажения и не отвечает должным образом. Трудно объяснить поведение, но просто назовите его «фанки». Размер и аспект изменяются без согласования.

МОЖЕТ, что это связано с ограничениями автоопределения. У кого-нибудь есть некоторые предложения/исправления для этого?

ответ

0

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

Если вы реализуете -(void) scrollViewDidZoom:(UIScrollView *)scrollView и запишите рамку UIImageView за это время, вы можете увидеть ее происхождение.

Я закончил тем, что делает вещи удаются путем реализации стратегии, как это: https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/ch20p573scrollViewAutoLayout/ch20p573scrollViewAutoLayout/ViewController.m

И кроме того, изменяя рамку contentView при зумировании

-(void) scrollViewDidZoom:(UIScrollView *)scrollView { 
    CGRect cFrame = self.contentView.frame; 
    cFrame.origin = CGPointZero; 
    self.contentView.frame = cFrame; 
} 
Смежные вопросы