因此,對於我的視圖在問題出現之前所做的一些解釋,頁面會加載一堆可點擊進contentView的按鈕,這是一個我的scrollView的子視圖。UIScrollView - 縮放問題(在任何縮放後切斷UIScrollView內部的UIView底部)
我得到了一個UIViewController,裏面我有我的 UIScrollView scrollView來處理滾動和縮放 UIView contentView我添加了所有的UIButtons。
好吧我會盡力只把我認爲可能需要改變的代碼。
在viewDidLoad中scrollView.contentSize = CGSizeMake(320, (20+totalRows*OFFSET_Y));
[scrollView setMaximumZoomScale:4];
[scrollView setMinimumZoomScale:1];
[scrollView setDelegate:self];
[contentView setFrame:CGRectMake(0, 0, 320, (20+totalRows*OFFSET_Y))];
[self.scrollView addSubview:contentView];
做一些計算,看我有多大需要內容大小是適合所有的按鈕,然後我添加內容查看爲子視圖滾動視圖我。 我再加入所有的UIButtons我的內容查看
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return [self contentView];
}
得到了我的委託方法進行縮放返回內容查看的子視圖。
好的,所以一切都是可滾動的和可縮放的,因爲它應該是..所有我的UIButtons仍然是可點擊的,它的工作原理應該如何。
問題是我放大/縮小後,當我滾動到我的scrollView的底部,它被從底部切斷,所以最後一排按鈕被切成兩半。即使當我重新縮放到1:1時,它仍然被切斷。
我在應用程序中有一個導航控制器,它是44像素,不知道這是否以某種方式搞砸了某些東西。
我正在檢查scrollView和contentView的contentSize,在完成任何縮放之前,我的scrollView的高度比contentView大44個像素,但在任何縮放比例爲1:1後,似乎是問題。 雖然我不會在代碼中的任何位置更改大小。
任何幫助表示讚賞! 感謝
就像我以前的想法我加了這段代碼
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale (float)scale
{
self.scrollView.contentSize = CGSizeMake(self.scrollView.contentSize.width, self.scrollView.contentSize.height + (44 * scale));
}
而且現在縮放不削減任何關閉,似乎是正常工作。
我仍然不相信這是我應該做的,但我猜它現在適用。
仍然希望有人有更好的答案!
在玩過更多與我的應用程序後,我意識到變焦從來不是問題的開始。實際的問題是我的UIView * contentView。在更改我的scrollView和我的contentView的背景顏色(2種非常不同的顏色)後,我注意到我的contentView沒有足夠長的時間來覆蓋所有的按鈕。
所以在第一次加載scrollView足夠大看到一切,但一旦你縮放,它需要contentView的大小,它沒有被正確調整!
所有這一切說,它終於如何應該!..哈哈沒有回覆,但希望有人可能會覺得這有用!最好的提示是改變背景顏色。