模仿高德地图查询控件
项目里有需要用到这个功能,看起来很简单很清晰的功能,可是真正当自己写的时候,发现有很多需要注意的地方,开题报告,在此分享出来,希望能帮到有需要的人。
主要解决的有两个地方:一是手势与tableView的scroll滑动冲突的问题;还有一个就是searchBar的键盘以及searchBar在Editing状态下的动画问题。
例如手势与tableView的scroll滑动冲突的问题,解决方案如下:
[Objective-C] 查看源文件 复制代码
/** 返回值为NO swipe不响应手势 table响应手势 返回值为YES swipe、table也会响应手势, 但是把table的scrollEnabled为No就不会响应table了 */ - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { // NSLog(@'----------- table = %f ------------',self.vc.table.contentOffset.y); // 触摸事件,一响应 就把searchBar的键盘收起来 // searchBar收起键盘 UIButton *cancelBtn = [self.vc.searchController.searchBar valueForKey:@'cancelButton']; //首先取出cancelBtn // 代码触发Button的点击事件 [cancelBtn sendActionsForControlEvents:UIControlEventTouchUpInside]; // 当table Enabled且offsetY不为0时,让swipe响应 if (self.vc.table.scrollEnabled == YES && self.vc.table.contentOffset.y != 0) { return NO; } if (self.vc.table.scrollEnabled == YES) { return YES; } return NO; }工程里面有像上面这样具体的注释,可以去翻阅源码:
GitHub地址:https://github.com/AmoAmoAmo/SwipeGesture
欢迎大家纠错。希望这些可以帮助到你。
,论文