2011-11-20 53 views
2

因此,對於我的視圖在問題出現之前所做的一些解釋,頁面會加載一堆可點擊進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的大小,它沒有被正確調整!

所有這一切說,它終於如何應該!..哈哈沒有回覆,但希望有人可能會覺得這有用!最好的提示是改變背景顏色。

回答

0

美好的一天, 我意識到遊戲很晚,但想要更新我在此發現的內容,是否應該有其他人遇到此問題。

所有的都設置了UIImageView和UIScrollView到「Aspect Fit」,這解決了我的問題。這可能是Xcode 7功能,但它可以工作。