Search Bar and Search Display Controller在iOS8的兼容问题。

这是苹果ios8.1自带的通讯录的效果图。下拉时,searchbar不会随着下拉。
自己如果直接把Search Bar and Search Display Controller直接拖入UIView中会被遮挡;iOS6.1就没有这个问题。
为了解决问题很简单,就是对Search Bar and Search Display Controller,进行上下移动;对UITableView,也要相应的移动(不移动会有显示瑕疵);
为了把瑕疵减小,对两个控件移动时会添加动画。
1 - (void)viewDidLoad { 2 [super viewDidLoad]; 3 // Do any additional setup after loading the view from its nib. 4 self.title = @"所有联系人"; 5 // 获取系统版本号 6 mSystemVersion = [NSString stringWithFormat:@"%f",[[[UIDevice currentDevice] systemVersion] floatValue]]; 7 NSLog(@"-------------------%@",mSystemVersion); 8 if ([mSystemVersion isEqualToString:@"6.100000"]) 9 { 10 11 // self.searchDisplayController.searchBar.frame = CGRectMake(0, 0, 320, 44); 12 } 13 else if ([mSystemVersion isEqualToString:@"8.100000"]) // 这是在ios8.1中做适配 14 { 15 self.searchDisplayController.searchBar.frame = CGRectMake(0, 64, 320, 44); 16 self.tv_table.frame = CGRectMake(0, -20, 320, 524); 17 } 18 } 19 20 21 // 点击时上移控件。 22 - (void)searchBarTextDidBeginEditing:(UISearchBar *)_searchBar 23 { 24 if ([mSystemVersion isEqualToString:@"6.100000"]) 25 { 26 self.tv_table.frame = CGRectMake(0, 0, 320, 504); 27 } 28 else if ([mSystemVersion isEqualToString:@"8.100000"]) // 这是在ios8.1中做适配 29 { 30 [UIView animateWithDuration:0.28 animations:^{ 31 self.tv_table.frame = CGRectMake(0, 44, 320, 524); 32 self.searchDisplayController.searchBar.frame = CGRectMake(0, 20, 320, 44); 33 }]; 34 } 35 [self.searchDisplayController.searchBar setShowsCancelButton:YES]; 36 } 37 38 39 40 // 点击取消时下移 41 - (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar 42 { 43 if ([mSystemVersion isEqualToString:@"6.100000"]) 44 { 45 self.tv_table.frame = CGRectMake(0, 44, 320, 504); 46 } 47 else if ([mSystemVersion isEqualToString:@"8.100000"]) // 这是在ios8.1中做适配 48 { 49 [UIView animateWithDuration:0.28 animations:^{ 50 self.searchDisplayController.searchBar.frame = CGRectMake(0, 64, 320, 44); 51 self.tv_table.frame = CGRectMake(0, 44, 320, 524); 52 }]; 53 54 } 55 [self.searchDisplayController.searchBar setShowsCancelButton:YES]; 56 }
上面重要代码!如需要完整代码给发邮件1581758003@qq.com!
浙公网安备 33010602011771号