是否可以在按钮上启动滚动视图平移手势
Posted
技术标签:
【中文标题】是否可以在按钮上启动滚动视图平移手势【英文标题】:Is it possible to start scrollView pan gesture on a button 【发布时间】:2015-02-25 23:21:50 【问题描述】:我有这样的层次结构
- UIView
- UITableView
- UIButton
默认情况下,从 UIButton 滑动不会滚动滚动视图。我想改变它。
我可以通过将UIButton
更改为UILabel
并添加UITapGestureRecogniser
来有效地制作自定义按钮。
有没有办法让它保持为 UIButton?
【问题讨论】:
按钮的层次结构是什么?它是单元格的子视图吗? ui表视图?导航栏? @YuchenZhong - 按钮是 tableView 的兄弟。生病补充我的问题。 我们最近遇到了一个非常相似的问题。我们有一个地图视图(滚动视图)和一个UIbutton
。我们想让用户从按钮开始平移地图,并使按钮仅响应TouchUpInside
事件。但是,似乎使用UITapGestureRecogniser
是实现这一目标的唯一方法。
【参考方案1】:
-(void)moveUpView
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:n inSection:0];
[self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop
animated:YES];
希望这可以工作
【讨论】:
我已经在我的视图上对此进行了测试,它是简单的视图,如注册屏幕,尚未在 Tableview 上进行测试。告诉我它是否也适用于 tableview..! 这不会只是将 UITableView 向上移动吗?您不想修改 contentOffset 而不是视图的框架吗? 如果我错了,请纠正我,你真的是滚动按钮来滚动 Tableview 吗?? 嗨,魔法师。感谢您的回答,但这不是我所追求的。我希望滚动视图正常工作,但是在按钮处启动时它的平移手势不起作用。【参考方案2】:创建一个重复的UITableView
(具有相同的dataSource
和delegate
),但不要将其插入到视图层次结构中的任何位置;只需将其panGestureRecognizer
添加到UIButton
。实现其委托-scrollViewDidScroll:
方法,将原始UITableView
的contentOffset
设置为重复的UITableView
。
【讨论】:
以上是关于是否可以在按钮上启动滚动视图平移手势的主要内容,如果未能解决你的问题,请参考以下文章