2

我查看了许多其他类似的问题,但没有与 iOS6 相关的明确答案。

我有一个应用程序,它的屏幕带有两个 UIScrollView 子类——一个 UICollectionView 和一个 UITableView。UITableView 在视觉上位于 UICollectionView 的下方/下方,UICollectionView(集合视图)提供一组按钮,而 UITableView 提供可滚动的数据列表。如果触摸状态栏,则请求 tableview 滚动到顶部,就像在具有一个覆盖整个屏幕的主滚动视图衍生的应用程序中一样。

在我们的例子中,两个滚动视图衍生品都没有覆盖整个屏幕,并且 UICollectionView 总是滚动到顶部。

在 UICollectionView scrollsToTop = NO。UITableView 上的 scrollsToTop 设置为 YES。视图是视图层次结构中的兄弟。

我已经看到在其他问题中提到了一种在状态栏上放置透明视图并拦截触摸事件的解决方案,但是这样做会产生一些副作用。

另一种解决方案是观察系统通知“_UIApplicationSystemGestureStateChangedNotification”。这种看起来像一个私人的 Apple 通知,我担心 App Store 的可访问性会这样做。

(另一个问题是我的类还有一个子类在tableView之上覆盖了一个子viewcontroller的view,并且它有自己的UITableView来显示。在这种情况下,原来的根类tableView设置为scrollsToTop = NO和子 viewController 的 scrollsToTop = YES - 当然没有它工作)。

是否有通用且 Apple 接受的方法来执行此操作?我希望有一个记录在案的通知或类似的东西,但一直找不到。我真的很希望能够让我的 tableView 的这个简单功能在状态栏被触摸时像人们期望的那样做出响应。

4

0 回答 0