我在雙擊時縮小UIScrollView
中的UIImageView
。在Interface Builder中設置時可以正常工作。我在這裏看到的魔術是,當我放大/縮小時,scrollView
的contentSize
自身增加/減少。我檢查contentSize
viewDidLoad
,它不是零。UIScrollview ContentSize魔術
我試圖通過從IB刪除scrollView
和imageView
並通過編程創建它們。在添加imageView
和tapGestureRecognizer
後,我無法在此處縮放。當我檢查原因時,contentSize
到處都是零。
當我將它們添加到IB/xib中時,我無所作爲contentSize
。我沒有把它放在任何地方。我覺得它很好,contentSize
自動調整我需要的地方。但是,當我以編程方式創建scrollView
時,它不會被複制。
如何讓它工作?我歡迎你的建議。
這是我參考的代碼。在IB創建
- (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
滾動型創建編程
- (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
個
無論通過IB工作可以通過代碼programatically.See來完成,如果某個地方參考了正確deleagtes正常等設置 –