2013-06-23 4 views
1

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

Я сделал видео, потому что у меня нет технической терминологии, чтобы описать, что здесь происходит. Любая помощь будет оценена по достоинству.

https://www.youtube.com/watch?v=SvhqHI-3_g8

красный мой текущий фон из UIScrollView. Не против.

ViewController.h

@interface ViewController : UIViewController <UIActionSheetDelegate, UIImagePickerControllerDelegate, UIScrollViewDelegate> 

@property (strong, nonatomic) UIImage *workingImage; 
@property (weak, nonatomic) IBOutlet UIImageView *chosenImageView; 
@property (weak, nonatomic) IBOutlet UIScrollView *imageScroller; 

-(IBAction)cameraButtonPressed; 

@end 

ViewController.m

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    self.imageScroller.minimumZoomScale = 1.00f; 
    self.imageScroller.maximumZoomScale = 15.0f; 
    self.imageScroller.contentSize = self.imageScroller.frame.size; 
    self.imageScroller.scrollEnabled = YES; 
} 

-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView 
{ 
    return self.chosenImageView; 
} 

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    UIImage *chosenImage = [info objectForKey:UIImagePickerControllerOriginalImage]; 
    [self.chosenImageView setImage:chosenImage]; 
    [self.imageScroller setContentSize:chosenImage.size]; 

    [self dismissViewControllerAnimated:YES completion:nil]; 
} 
+0

Некоторый код был бы полезен. Что у вас есть, что взаимодействует с текущей позицией/уровнем масштабирования/прокруткой/и т. Д.? – Garrett

+0

Абсолютно ничего. Единственный метод, который я реализовал, - это яблоко, рекомендованное 'viewForZoomingInScrollView', которое я добавлю к вопросу. – Rob

+0

Не уверен, что причина этого, но настройка 'contentSize' как размера представления не совсем хорошая практика. Попробуйте установить «contentSize» в качестве размера кадра изображения при его загрузке. – Garrett

ответ

1

Смотрите, если эта статья поможет. Кажется, что отсутствующий метод ScrollViewDidZoom может быть ключевым для поддержания масштабированного представления. http://www.raywenderlich.com/10518/how-to-use-uiscrollview-to-scroll-and-zoom-content

+0

К сожалению, это не решило проблему. Спасибо за вашу помощь. :( – Rob

+0

Вы пробовали регистрировать границы прокрутки и изображений, размер содержимого, методы и т. Д., Чтобы увидеть, что происходит с представлениями? Также добавление точки останова исключения может помочь вам отлаживать в момент сбоя. – HM1

+0

Я зарегистрировал масштаб и он смог следить за тем, чтобы он прошел от моего минимума до максимума и оставался там, каждый раз, когда он делал что-то с моим изображением. Однако я не знаком с тем, как использовать контрольные точки исключения, t нашел один учебник, который их хорошо объясняет. – Rob