0

我目前正在制作一个 iOS 项目,其中我有一个UIScrollView作为UIWindow(使用[window addSubview:scrollView];)的直接子视图。窗口的框架及其内容已正确设置,并且contentSize设置为大于窗口的框架。当我尝试滚动 UIScrollView 时,它根本不滚动。两者scrollEnabledpagingEnabled都设置为YES,但滚动视图不滚动,这让我相信滚动视图甚至没有接收到触摸/滚动事件。UITapGestureRecognizer如果有任何区别,则窗口会添加一个。我是否需要以某种方式将滑动事件转发到UIScrollView,或者是否有其他原因导致它不滚动?

编辑:这是一些代码。

   float count=ceil([self.msgArray count]/2); //msgArray has length of 3+, NSLog()'d and confirmed.
   float contentHeight=97.5 * count;
   [dataScrollView setContentSize:CGSizeMake(320,contentHeight)];
   dataScrollView.userInteractionEnabled=YES;
   dataScrollView.pagingEnabled=YES;
   dataScrollView.scrollEnabled=YES;
   dataScrollView.clipsToBounds=YES; //Have also tried with this set to NO, or not set at all.
   //Add subviews to dataScrollView.

编辑:这里有更多信息。记录时 contentHeight 为 195.00。我已经删除了委托方法,我又回到了使用滚动视图的直接子视图。窗口的高度为 97.50。

编辑:我还从 UIWindow 中删除了 UITapGestureRecognizer,但滚动视图仍然不滚动。

4

2 回答 2

0

UITapGestureRecognizer!这可能是我在自己的项目中花了几个小时才弄清楚的错误。它的cancelsTouchesInView属性是否设置为NO应有的样子?(YES是默认设置...如果您不期待它,它真的会让您失望。)

于 2013-03-30T23:29:46.847 回答
0

只需记录滚动视图边界宽度/高度。您设置的内容高度应大于滚动视图高度。如果它更多,则滚动视图会自动启用其滚动。

于 2013-03-31T00:18:26.067 回答