因此,在问题出现之前我的视图有一些解释,页面加载了一组可点击进入contentView的按钮,这是我的scrollView的子视图。
我有一个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];
进行一些计算以查看我需要多大的内容大小以适应所有按钮,然后我将contentView作为subView添加到我的scrollView。 然后我将所有UIButtons添加为我的contentView的子视图
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return [self contentView];
}
获得了用于缩放返回contentView的委托方法。
好吧所以一切都是可滚动的,可缩放的,就像它应该是......所有我的UIButtons仍然可以点击并按照应有的方式工作。
问题是我放大/缩小后,当我一直滚动到我的scrollView底部时,它被从底部切掉,所以最后一排按钮被切成两半。即使我以1:1的比例重新上场,它仍然会被切断。
我在应用程序中有一个44像素的NavigationController,不确定是否会以某种方式搞砸了。
我正在检查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));
}
现在,Zooming没有削减任何东西,似乎工作正常。
我仍然不相信这是我应该做的,但我想它现在有效。
仍然希望有人有更好的答案!
在玩我的应用程序后,我意识到缩放从来都不是问题。实际问题出在我的UIView * contentView上。在更改了我的scrollView和我的contentView的背景颜色(改为2种非常不同的颜色)后,我注意到我的contentView不够长,无法覆盖所有按钮。
所以在第一次加载时,scrollView足够大,可以看到所有内容,但一旦你缩放,它就需要内容视图的大小,它没有被正确调整!
所有这一切,它最终应该如何应用!哈哈没有回复,但希望有人可能会觉得这很有用!最好的提示是改变背景颜色。
答案 0 :(得分:0)
美好的一天, 我意识到游戏的时间已经很晚了,但是如果有其他人遇到这个问题,我想更新我发现的内容。
所有做的都是将UIImageView和UIScrollView设置为" Aspect Fit"这解决了我的问题。这可能是一个Xcode 7功能,但它可以工作。