2011-11-20 54 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功能,但它可以工作。