2010-09-03 92 views
0

是否有可能确定是否显示uiview obj。想象一下:您在uiscrollview中有2个uiviews。现在您将按照第一个视图切换到第二个视图。现在第一个视图不在视口中。现在你要回到第一个观点。现在我想通知这个视图是在视口中,还是重新显示。第二种观点也一样。我还没有找到任何回调或类似的东西。确定是否显示uiview

+0

你需要更具体。什么手势?我猜它是一个滑动。向左/向右滑动以将两个视图滑入和滑出框架? – 2010-09-03 09:24:26

+0

它必须独立于手势。如果视图进入视口,我希望收到通知。 – 2010-09-03 09:41:43

回答

0

确保您的UiViewController覆盖viewWillAppear :(在调用此方法之前)或viewDidAppear :(调用此方法之后)。

参见:http://developer.apple.com/iphone/library/documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#//apple_ref/occ/instm/UIViewController/viewWillAppear

+0

你就是这样,但问题是,这种观点是在一个图书馆交付给客户。而客户不应该这样做。我知道有一种可能性来定义一个custome uiviewcontroller类,它将这样做,所有的uiviewcontrollers都必须继承它,但这对于应用程序员来说太过分了。他们只应该启动uview并定义postioni。这就够了。我认为这是不可能的。 – 2010-09-03 09:38:50

0

这取决于你所说的 “开关” 的意思。如果一个视图只是滚动到scrollview的可见区域外,但仍然作为子视图附加到视图上,则可能需要检查视图的边界是否与滚动视图可见区域的边界重叠。

您可以通过使用UIScrollView DelegatescrollViewDidScroll:方法来执行此操作,以在用户滚动时执行重叠检查。

但是,如果您的视图实际上已从视图中删除,那么您可能想要继承UIView并实现willMoveToSuperview:以检查视图是否已再次添加到滚动视图。