Мой UIScrollView заполняется большим содержимым, а затем масштабируется с помощью «setZoomScale: animated», так что он помещается в рамку прокрутки.Вид отображается правильно уменьшенным и правильно расположенным в виде прокрутки.Тем не менее, пользователь может прокручивать содержимое вне (цвет фона прокрутки показывает).Кажется, что он может прокрутить до исходного размера контента (как если бы контент не был уменьшен).Как ни странно, после того, как пользователь в первый раз увеличил масштаб вручную, все работает нормально, и просмотр прокрутки снова ограничен размером контента.
Я искал в Интернете и просматривал документы и примеры Apple, но могне найти никого, имеющего ту же проблему.Примеры Apple, кажется, показывают то же самое, что и я.
Мой контент - это пользовательское представление, производное от UIView, чей CALayer заменен на CATiledLayer (как в примерах Apple).Рисунок, который я делаю сам в drawLayer: inContext:.
Вот фрагмент кода из MyScrollViewController:
- (void)loadView {
CGRect frame = [UIScreen mainScreen].applicationFrame;
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:frame];
scrollView.maximumZoomScale=1.0;
scrollView.delegate = self;
... setup theContentView ...
scrollView.contentSize = theContentView.bounds.size;
scrollView.contentInset = UIEdgeInsetsMake(20, 20, 20, 20);
[scrollView addSubview:theContentView];
self.view = scrollView;
double zoomScale = 0.5; // hardcoded for testing
[scrollView setZoomScale:zoomScale animated:NO];
NSLog(@"zoomscale=%g contentview=%@ contentsize=%@", zoomScale, NSStringFromCGSize(theContentView.bounds.size), NSStringFromCGSize(scrollView.contentSize));
[scrollView release];
}
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return theContentView;
}
Оператор NSLog показывает правильно установленные contentSize и zoomscale ...
Надеюсь, что-то очевидно, что мне не хватает ...