зум подпрыгивая + навигационная панель назад нажатие кнопки = сбой приложения - PullRequest
1 голос
/ 08 ноября 2011

сегодня я разбил свое приложение и знаю почему. У меня есть UIViewController (класс Picture) с ScrollView и ImageView на нем.

@property (nonatomic, retain) IBOutlet UIScrollView *scrollview;
@property (nonatomic, retain) IBOutlet UIImageView *imageview;
@property (nonatomic, retain) IBOutlet UIActivityIndicatorView *activityIndicator;  

Это мой третий вид, которому я звоню через pushViewController:pic animated:YES

Это мои настройки прокрутки (без initWithFrame):

[scrollview setBackgroundColor:[UIColor blackColor]];
[scrollview setShowsVerticalScrollIndicator:NO];
[scrollview setShowsHorizontalScrollIndicator:NO];
[scrollview setContentSize:scrollview.frame.size];
[scrollview setAlwaysBounceVertical:YES];
[scrollview setAlwaysBounceHorizontal:YES];
#warning BouncesZoom + BackButton = App Crash!
scrollview.bouncesZoom = YES;
scrollview.decelerationRate = UIScrollViewDecelerationRateFast;
[scrollview setDelegate:self]; 

Так что теперь я увеличиваю изображение, и когда я прекращаю перетаскивать изображение, его размер возвращается к минимальному размеру. Если я теперь снова увеличу масштаб, удерживая перетаскивание, нажмите кнопку «Назад» на панели контроллера навигации третьим пальцем, приложение вылетает:

2011-11-08 16:48:45.572 Archiv[1319:707] *** -[Picture respondsToSelector:]: message sent to deallocated instance 0x44e3960

Вы можете мне помочь? Пожалуйста, не говорите мне, чтобы отключить bounceZoom. $ Ч @ скалистый

1 Ответ

1 голос
/ 29 ноября 2011

Решено.

Проблема в том, что scrollview-Delegate запускает событие, чтобы отскочить назад, но объект уже освобожден.Удалите делегата, и все в порядке.

- (void)viewWillDisappear:(BOOL)animated{    
    [scrollview setDelegate:nil];
}

С уважением.Sharky

...