Это интересно.Согласно распечатке следующие - (void)scrollViewDidZoom:(UIScrollView *)scrollView
contentSize на самом деле scrollview.frame.size
x scrollview.zoomScale
.
- (void)scrollViewDidZoom:(UIScrollView *)scrollView {
if ([self.scrollView zoomScale] < 1.0)[self.scrollView setZoomScale:1.0];
NSLog (@"didZoom: ZoomScale: %.2f; ContentSize: %@; ScrollView: %@", self.scrollView.zoomScale, NSStringFromCGSize(self.scrollView.contentSize),NSStringFromCGSize(self.scrollView.frame.size));
}
Две строки распечатки:
didZoom: ZoomScale: 1.76;ContentSize: {1798.02, 1208.05};ScrollView: {1024, 688}
didZoom: ZoomScale: 1,50;ContentSize: {1537.94, 1033.3};ScrollView: {1024, 688}
Не нашел эту «функцию» в документации.
Редактировать : пробовал также следующее:
-(void) manualSettingOfContentSizeAndZoomScale
{
NSLog (@"A: ZoomScale: %.2f; ContentSize: %@; ScrollView: %@", self.scrollView.zoomScale, NSStringFromCGSize(self.scrollView.contentSize),NSStringFromCGSize(self.scrollView.frame.size));
self.scrollView.contentSize = CGSizeMake(1800.0,1200.0);
NSLog (@"B: ZoomScale: %.2f; ContentSize: %@; ScrollView: %@", self.scrollView.zoomScale, NSStringFromCGSize(self.scrollView.contentSize),NSStringFromCGSize(self.scrollView.frame.size));
self.scrollView.zoomScale = 1.8;
NSLog (@"C: ZoomScale: %.2f; ContentSize: %@; ScrollView: %@", self.scrollView.zoomScale, NSStringFromCGSize(self.scrollView.contentSize),NSStringFromCGSize(self.scrollView.frame.size));
self.scrollView.contentSize = self.scrollView.frame.size;
NSLog (@"D: ZoomScale: %.2f; ContentSize: %@; ScrollView: %@", self.scrollView.zoomScale, NSStringFromCGSize(self.scrollView.contentSize),NSStringFromCGSize(self.scrollView.frame.size));
}
Результат был:
A: Масштаб: 1,00;ContentSize: {0, 0};ScrollView: {1024, 688}
B: ZoomScale: 1,00;ContentSize: {1800, 1200};ScrollView: {1024, 688}
C: ZoomScale: 1,80;ContentSize: {1843.2, 1238.4};ScrollView: {1024, 688}
D: ZoomScale: 1,80;ContentSize: {1024, 688};ScrollView: {1024, 688}
A: ОК, задокументировано, что contentSize по умолчанию равно CGSizeZero
(хотя scrollView
обычно показывает его содержимое при zoomScale 1.0
B: после установки contentSize
zoomScale
не изменился, как и внешний вид scrollView
C: после установки zoomScale
contentSize
и внешний вид изменился соответственно
D: после сброса contentSize
ничего не изменилось - contentSize
как свойство действительно изменилось, но не повлияло на внешний вид
Вывод: используйте zoomScale
для установки внешнего вида содержимого scrollView
Если память служитЯ прав: contentSize на самом деле важен для прокрутки UIScrollView
с pagingEnabled
, установленным на YES
. Это довольно сложный объект, поэтому, возможно, не все связано так, как вы думаете или хотите.