5

我一直在为这个让自己发疯。这可能是我需要退后一步并找出实现这一点的最简单方法的事情之一。在这方面也找不到任何东西。我用谷歌搜索了这个。

在 Pocket App 中,当您下拉菜单时,它会像 searchBar 一样显示自己。在这种情况下,当您将人造杆拉过中点时,如果您松开它,它会显示弹簧就位。如果它在中点之前释放,则该条将弹回并隐藏。如此处所示

在此处输入图像描述

就我而言,我一直在尝试复制它,但没有运气。就我而言,我在 UIViewController 视图中有一个 UITextView 。我想我都错了。

我可以让它与隐藏的 UIScrollView 一起工作,方法是在屏幕外启动它,然后当我按下按钮时,UIScrollView 会显示出来。问题是这种方法涵盖了所有内容,所以我必须调整和重新布局一堆视图。这可能在 UITableView 中吗?我希望它是一个拉动作,只是想在这个栏中放置一些 TextStrings/Labels。

先感谢您。

4

2 回答 2

6

感觉就像您需要一个 UIScrollView(或 UITableView)并将您想要显示的菜单放在顶部(例如,在表格视图标题中),然后获取用于滚动的委托回调。

UIScrollViewDelegate
- (void)scrollViewDidScroll:(UIScrollView *)scrollView

您可能还需要注意一些拖动委托回调

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate

您最初可以通过将内容偏移设置为菜单的高度来隐藏菜单,然后捕获委托回调以进行滚动,如果滚动已超过菜单大小的一半,则使用动画设置内容偏移。

- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
于 2012-09-11T07:56:02.393 回答
1

如果我正确理解您的目标,则不需要滚动视图。

我要做的是有一个简单UIView的包含你需要的所有东西并将它放在可见区域之外。这将是您的下拉视图。UIPanGestureRecognizer然后在您的视图中添加一个UIViewController并使用它来跟踪手指的移动并相应地更新下拉视图的框架。然后在这个更新方法中,您只需检查位置是否超过了某个阈值,如果是,则让下拉视图捕捉到其最终位置(当然使用动画)。

如果您不熟悉UIPanGestureRecognizer这里有一个非常好的教程: http ://www.raywenderlich.com/6567/uigesturerecognizer-tutorial-in-ios-5-pinches-pans-and-more

于 2012-09-13T08:29:53.643 回答