我正在放大一个UIImageView
双击UIScrollView
。在 Interface Builder 中设置时工作正常。我在这里看到的神奇之处在于,contentSize
当scrollView
我放大/缩小时,它会自行增加/减少。我检查contentSize
in viewDidLoad
,它不是零。
scrollView
我通过从 IB 中删除andimageView
并以编程方式创建它们来尝试相同的方法。添加imageView
and后tapGestureRecognizer
,我无法在此处缩放。当我检查原因时,contentSize
到处都是零。
当我在 IB/xib 中添加它们时,我对contentSize
. 我没有在任何地方设置它。我发现它工作正常,contentSize
在我需要的地方自动调整。scrollView
但是,当我以编程方式创建它时,它并没有复制。
我怎样才能让它工作?我欢迎你的建议。
这是我的参考代码。
在 IB 中创建的 ScrollView
- (void)viewDidLoad {
[super viewDidLoad];
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)];
[doubleTap setNumberOfTapsRequired:2];
[imageView addGestureRecognizer:doubleTap];
imageScrollView.minimumZoomScale=1.01;
imageScrollView.maximumZoomScale=5;
imageScrollView.zoomScale=1.01;
NSLog(@"height = %f width = %f", imageScrollView.contentSize.height, imageScrollView.contentSize.width);
}
NSLog 说
height = 449.479767 width = 320.000000
以编程方式创建的 ScrollView
- (void)viewDidLoad {
[super viewDidLoad];
imageScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)];
[doubleTap setNumberOfTapsRequired:2];
[imageView addGestureRecognizer:doubleTap];
imageScrollView.minimumZoomScale=1.01;
imageScrollView.maximumZoomScale=5;
imageScrollView.zoomScale=1.01;
[self.view addSubview:imageScrollView];
[self.imageScrollView addSubview:imageView];
NSLog(@"height = %f width = %f", imageScrollView.contentSize.height, imageScrollView.contentSize.width);
}
NSLog 说
height = 0.000000 width = 0.000000