android 地图侧滑栏,地图滑动手势与View滑动手势共存

博客介绍了在app的tab页面展示地图时,需区分滑动手势以支持滑动地图和切换tab。给出demo示例,如快速滑动、从侧边开始滑动则切换tab,否则滑动地图。还展示了核心类接口,给出实现手势处理和设置手势并发的代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用场景

如果您的app中使用了某一个tab页面来展示地图,就需要考虑对滑动手势进行区分,以便既能支持滑动地图,又能支持切换tab。

该demo给出了示例:快速滑动、从侧边开始滑动,则切换tab;否则滑动地图。

详细效果请见右侧视频。

用到产品

核心类/接口

类接口说明版本

UIPanGestureRecognizer----系统手势----

核心难点

实现手势处理

- (void)panHandler:(UIPanGestureRecognizer *)gesture

{

// NSLog(@"vvv %f, %f", [gesture velocityInView:_scrollView].x, [gesture velocityInView:_scrollView].y);

// 设置触发条件

if (gesture.state != UIGestureRecognizerStateEnded)

{

return;

}

if (fabs([gesture velocityInView:_scrollView].x) > 1200)

{

// -1 向左,1 向右

int direction = fabs([gesture velocityInView:_scrollView].x) / [gesture velocityInView:_scrollView].x;

int validIdx = 1;

if (_currentIndex == validIdx && !_scrollView.isDecelerating)

{

CGFloat width = _scrollView.frame.size.width * (1 - direction);

[_scrollView setContentOffset:CGPointMake(width, 0) animated:YES];

}

}

}

设置允许和scrollview上pan手势并发

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

{

return YES;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值