You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
172 lines
5.7 KiB
172 lines
5.7 KiB
// |
|
// RailSearchAddressVC.m |
|
// LekangGuard |
|
// |
|
// Created by ecell on 2023/12/9. |
|
// |
|
|
|
#import "RailSearchAddressVC.h" |
|
#import "RailSearchAddressTableViewCell.h" |
|
|
|
@interface RailSearchAddressVC ()<UISearchBarDelegate,AMapSearchDelegate> |
|
|
|
@property (nonatomic, strong) AMapSearchAPI *search; |
|
|
|
@property (nonatomic, strong) AMapInputTipsSearchRequest *currentRequest; |
|
|
|
/// 搜索栏 |
|
@property (strong, nonatomic) UISearchBar *searchBar; |
|
|
|
@property (nonatomic ,strong) CommonTableView *comTable; |
|
/** |
|
历史搜索数据 |
|
*/ |
|
@property (nonatomic, strong) NSMutableArray *historyData; |
|
|
|
@end |
|
|
|
@implementation RailSearchAddressVC |
|
|
|
- (void)viewDidLoad { |
|
[super viewDidLoad]; |
|
// Do any additional setup after loading the view. |
|
|
|
// [self zx_addCustomTitleView:self.searchBar]; |
|
// self.zx_navCustomTitleView.backgroundColor = KKGrey143; |
|
|
|
[AMapSearchAPI updatePrivacyShow:AMapPrivacyShowStatusDidShow privacyInfo:AMapPrivacyInfoStatusDidContain]; |
|
[AMapSearchAPI updatePrivacyAgree:AMapPrivacyAgreeStatusDidAgree]; |
|
|
|
|
|
|
|
self.search = [[AMapSearchAPI alloc] init]; |
|
self.search.delegate = self; |
|
|
|
self.zx_navBar.zx_titleView.backgroundColor = KKClearColor; |
|
[self.zx_navBar.zx_titleView addSubview:self.searchBar]; |
|
|
|
[self.view addSubview:self.comTable]; |
|
[self.comTable mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.right.equalTo(self.view); |
|
make.top.equalTo(self.view).offset(iPhoneX_NavHeight); |
|
make.bottom.equalTo(self.view.mas_bottom); |
|
}]; |
|
} |
|
- (CommonTableView *)comTable |
|
{ |
|
if (!_comTable) |
|
{ |
|
_comTable = [[CommonTableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain cellHeight:60 cellRow:0 isAdaptive:YES isLine:YES commonCell:RailSearchAddressTableViewCell.class createCell:^(ZZTableViewCell * _Nonnull cells, NSIndexPath * _Nonnull indexPath) { |
|
RailSearchAddressTableViewCell *cell = (RailSearchAddressTableViewCell *)cells; |
|
AMapTip * model = self.modelListArr[indexPath.row]; |
|
cell.addressStr = F(@"%@%@%@",model.district,model.address,model.name); |
|
} selectedCell:^(UITableView * _Nonnull tableView, NSIndexPath * _Nonnull indexPath) { |
|
AMapTip * model = self.modelListArr[indexPath.row]; |
|
if(self.selectAddressCallBack){ |
|
self.selectAddressCallBack(model.name, model.location); |
|
} |
|
[self.navigationController popViewControllerAnimated:YES]; |
|
} DidscrollView:^(UIScrollView * _Nonnull scrollView) { |
|
|
|
[self.searchBar resignFirstResponder]; |
|
}]; |
|
} |
|
return _comTable; |
|
} |
|
- (UISearchBar *)searchBar |
|
{ |
|
if (!_searchBar) |
|
{ |
|
_searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH-100, 38)]; |
|
_searchBar.placeholder = GJText(@"请输入搜索地址"); |
|
_searchBar.backgroundColor = KKClearColor; |
|
_searchBar.delegate = self; |
|
[_searchBar becomeFirstResponder]; |
|
} |
|
return _searchBar; |
|
} |
|
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar |
|
{ |
|
NSLog(@"aasdads"); |
|
} |
|
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar |
|
{ |
|
// [self.modelListArr removeAllObjects]; |
|
// // 显示 myTableView 显示历史搜索记录 |
|
//// if([UserDefaults valueForKey:SearchHistory]) |
|
//// { |
|
//// // 把字典转换成 模型类 |
|
//// NSArray *tempArr = [UserDefaults valueForKey:SearchHistory]; |
|
//// NSMutableArray *arr = [NSMutableArray array]; |
|
//// for (int i = 0 ; i < tempArr.count; i++) |
|
//// { |
|
//// AMapTip *model = [AMapTip yy_modelWithJSON:tempArr[i]]; |
|
//// [arr addObject:model]; |
|
//// } |
|
//// self.historyData = [[NSMutableArray alloc] initWithArray:@[arr]]; |
|
//// self.modelListArr = self.historyData; |
|
//// } |
|
//// self.comTable.cellRow = self.modelListArr.count; |
|
//// [self.comTable reloadData]; |
|
return YES; |
|
} |
|
- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text |
|
{ |
|
NSString *str = searchBar.text; |
|
NSString *resultStr = [str stringByReplacingCharactersInRange:range withString:text]; |
|
[self searchRequestString:resultStr]; |
|
return YES; |
|
} |
|
-(void)searchRequestString:(NSString *)str |
|
{ |
|
//搜索的信息 |
|
AMapInputTipsSearchRequest *request = [AMapInputTipsSearchRequest new]; |
|
request.keywords = str; |
|
self.currentRequest = request; |
|
//调起检索 |
|
[self.search AMapInputTipsSearch:request]; |
|
// self.isHistory = NO; |
|
} |
|
//MARK: ---- 高德 搜索 API 代理方法 ---- |
|
- (void)AMapSearchRequest:(id)request didFailWithError:(NSError *)error |
|
{ |
|
NSLog(@"Search Error: %@",error.description); |
|
} |
|
- (void)onInputTipsSearchDone:(AMapInputTipsSearchRequest *)request response:(AMapInputTipsSearchResponse *)response |
|
{ |
|
|
|
if (self.currentRequest == nil || self.currentRequest != request ){ |
|
return; |
|
} |
|
if (response.count == 0){ |
|
return; |
|
} |
|
[self.modelListArr removeAllObjects]; |
|
//过滤掉location也为空的 查询结果 比如: 天津市 |
|
// |
|
|
|
NSMutableArray *tempArr = [NSMutableArray array]; |
|
for (AMapTip* item in response.tips) { |
|
if(item.location){ |
|
[tempArr addObject:item]; |
|
} |
|
} |
|
|
|
//[self.modelListArr addObjectsFromArray:@[tempArr]]; |
|
self.modelListArr = tempArr; |
|
self.comTable.cellRow = self.modelListArr.count; |
|
[self.comTable reloadData]; |
|
|
|
|
|
} |
|
/* |
|
#pragma mark - Navigation |
|
|
|
// In a storyboard-based application, you will often want to do a little preparation before navigation |
|
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { |
|
// Get the new view controller using [segue destinationViewController]. |
|
// Pass the selected object to the new view controller. |
|
} |
|
*/ |
|
|
|
@end
|
|
|