因此,对于我的视图在问题出现之前所做的一些解释,页面会加载一堆可点击进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的大小,它没有被正确调整!
所有这一切说,它终于如何应该!..哈哈没有回复,但希望有人可能会觉得这有用!最好的提示是改变背景颜色。