mirror of
https://github.com/leanote/leanote-ios.git
synced 2025-10-20 18:54:30 +00:00
Edit New issue iPad 搜索样式优化, 不隐藏Navigation #20
This commit is contained in:
@@ -108,7 +108,7 @@ NSString const *key = @"isSelectOnSearchKey";
|
|||||||
|
|
||||||
-(void)setBarStyle
|
-(void)setBarStyle
|
||||||
{
|
{
|
||||||
if(self.isSelectOnSearch) {
|
if(self.isSelectOnSearch && !IS_IPAD) {
|
||||||
[self setBarStyleBlack];
|
[self setBarStyleBlack];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@@ -846,13 +846,38 @@
|
|||||||
return titleLen;
|
return titleLen;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 搜索
|
// ipad下search bar上移, 但navigation却不隐藏
|
||||||
|
// ipad下模拟没有navigationController, 但是SWTableViewCell selectCell 要用到
|
||||||
|
// http://stackoverflow.com/a/5860412/4269908
|
||||||
|
//- (UINavigationController *)navigationController {
|
||||||
|
// if (IS_IPAD) {
|
||||||
|
// return nil;
|
||||||
|
// } else {
|
||||||
|
// return self.navigationController;
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
- (UINavigationController *)navigationController {
|
||||||
|
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
|
||||||
|
NSString *sourceString = [[NSThread callStackSymbols] objectAtIndex:1];
|
||||||
|
// Example: 1 UIKit 0x00540c89 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1163
|
||||||
|
NSCharacterSet *separatorSet = [NSCharacterSet characterSetWithCharactersInString:@" -[]+?.,"];
|
||||||
|
NSMutableArray *array = [NSMutableArray arrayWithArray:[sourceString componentsSeparatedByCharactersInSet:separatorSet]];
|
||||||
|
[array removeObject:@""];
|
||||||
|
|
||||||
|
// Array[3] == class caller
|
||||||
|
if([array[3] isEqualToString:@"UISearchDisplayController"]) {
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return [super navigationController];
|
||||||
|
}
|
||||||
|
|
||||||
|
// 搜索
|
||||||
#pragma mark - UISearchDisplayDelegate Methods
|
#pragma mark - UISearchDisplayDelegate Methods
|
||||||
|
|
||||||
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
|
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
|
||||||
{
|
{
|
||||||
NSLog(@"[%@ %@]", NSStringFromClass([self class]), NSStringFromSelector(_cmd));
|
// NSLog(@"[%@ %@]", NSStringFromClass([self class]), NSStringFromSelector(_cmd));
|
||||||
|
|
||||||
NSString *searchPredicate = [NSString stringWithFormat:@"title contains[cd] '%@' or content contains[cd] '%@'", searchString, searchString];
|
NSString *searchPredicate = [NSString stringWithFormat:@"title contains[cd] '%@' or content contains[cd] '%@'", searchString, searchString];
|
||||||
|
|
||||||
@@ -868,9 +893,11 @@
|
|||||||
|
|
||||||
- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller
|
- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller
|
||||||
{
|
{
|
||||||
|
if (!IS_IPAD) {
|
||||||
[self setBarStyleBlack];
|
[self setBarStyleBlack];
|
||||||
self.isSelectOnSearch = YES;
|
self.isSelectOnSearch = YES;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
- (void)searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller
|
- (void)searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller
|
||||||
{
|
{
|
||||||
@@ -881,10 +908,12 @@
|
|||||||
|
|
||||||
// 为什么要reload ?
|
// 为什么要reload ?
|
||||||
// [self.tableView reloadData];
|
// [self.tableView reloadData];
|
||||||
|
if (!IS_IPAD) {
|
||||||
[self restoreBarStyle];
|
[self restoreBarStyle];
|
||||||
|
|
||||||
self.isSelectOnSearch = NO;
|
self.isSelectOnSearch = NO;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#pragma mark - UISearchBarDelegate Methods
|
#pragma mark - UISearchBarDelegate Methods
|
||||||
|
|
||||||
|
@@ -124,7 +124,7 @@
|
|||||||
self.title = NSLocalizedString(@"Notebook", nil);
|
self.title = NSLocalizedString(@"Notebook", nil);
|
||||||
|
|
||||||
|
|
||||||
// 我靠, 我不是故意的, 如果不加这两名, search bar动画会有突现, 突下的动画
|
// 我靠, 我不是故意的, 如果不加这两句, search bar动画会有突现, 突下的动画
|
||||||
// http://stackoverflow.com/a/20975075/4269908
|
// http://stackoverflow.com/a/20975075/4269908
|
||||||
[self setAutomaticallyAdjustsScrollViewInsets:YES];
|
[self setAutomaticallyAdjustsScrollViewInsets:YES];
|
||||||
[self setExtendedLayoutIncludesOpaqueBars:YES];
|
[self setExtendedLayoutIncludesOpaqueBars:YES];
|
||||||
@@ -139,7 +139,8 @@
|
|||||||
{
|
{
|
||||||
[super viewWillAppear:animated];
|
[super viewWillAppear:animated];
|
||||||
|
|
||||||
if(self.isSelectOnSearch) {
|
// 非IPAD下, 如果当前是isSelectOnSearch才要隐藏
|
||||||
|
if(self.isSelectOnSearch && !IS_IPAD) {
|
||||||
NSLog(@"self.isSelectOnSearch viewWillAppear");
|
NSLog(@"self.isSelectOnSearch viewWillAppear");
|
||||||
[self.navigationController setNavigationBarHidden:YES animated:animated];
|
[self.navigationController setNavigationBarHidden:YES animated:animated];
|
||||||
}
|
}
|
||||||
@@ -791,6 +792,32 @@
|
|||||||
return titleLen;
|
return titleLen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ipad下search bar上移, 但navigation却不隐藏
|
||||||
|
// ipad下模拟没有navigationController, 但是SWTableViewCell selectCell 要用到
|
||||||
|
// http://stackoverflow.com/a/5860412/4269908
|
||||||
|
//- (UINavigationController *)navigationController {
|
||||||
|
// if (IS_IPAD) {
|
||||||
|
// return nil;
|
||||||
|
// } else {
|
||||||
|
// return self.navigationController;
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
- (UINavigationController *)navigationController {
|
||||||
|
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
|
||||||
|
NSString *sourceString = [[NSThread callStackSymbols] objectAtIndex:1];
|
||||||
|
// Example: 1 UIKit 0x00540c89 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1163
|
||||||
|
NSCharacterSet *separatorSet = [NSCharacterSet characterSetWithCharactersInString:@" -[]+?.,"];
|
||||||
|
NSMutableArray *array = [NSMutableArray arrayWithArray:[sourceString componentsSeparatedByCharactersInSet:separatorSet]];
|
||||||
|
[array removeObject:@""];
|
||||||
|
|
||||||
|
// Array[3] == class caller
|
||||||
|
if([array[3] isEqualToString:@"UISearchDisplayController"]) {
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return [super navigationController];
|
||||||
|
}
|
||||||
|
|
||||||
#pragma mark - UISearchDisplayDelegate Methods
|
#pragma mark - UISearchDisplayDelegate Methods
|
||||||
|
|
||||||
- (void)searchDisplayController:(UISearchDisplayController *)controller didLoadSearchResultsTableView:(UITableView *)tableView
|
- (void)searchDisplayController:(UISearchDisplayController *)controller didLoadSearchResultsTableView:(UITableView *)tableView
|
||||||
@@ -812,6 +839,8 @@
|
|||||||
// 开始搜索, 从点击uisearchbar开始
|
// 开始搜索, 从点击uisearchbar开始
|
||||||
- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller
|
- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller
|
||||||
{
|
{
|
||||||
|
if (!IS_IPAD) {
|
||||||
|
|
||||||
[self setBarStyleBlack];
|
[self setBarStyleBlack];
|
||||||
|
|
||||||
// cate
|
// cate
|
||||||
@@ -832,6 +861,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
self.isSelectOnSearch = YES;
|
self.isSelectOnSearch = YES;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 结束搜索, 点击取消
|
// 结束搜索, 点击取消
|
||||||
- (void)searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller
|
- (void)searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller
|
||||||
@@ -843,6 +874,8 @@
|
|||||||
// [controller.searchResultsTableView reloadData]; // 不能有这个, 这个没用!! 有这个会导致选择笔记有问题
|
// [controller.searchResultsTableView reloadData]; // 不能有这个, 这个没用!! 有这个会导致选择笔记有问题
|
||||||
[self.tableView reloadData];
|
[self.tableView reloadData];
|
||||||
|
|
||||||
|
if (IS_IPAD) {
|
||||||
|
|
||||||
[self restoreBarStyle];
|
[self restoreBarStyle];
|
||||||
|
|
||||||
// cate
|
// cate
|
||||||
@@ -864,6 +897,8 @@
|
|||||||
[self.navigationController setNavigationBarHidden:NO animated:YES];
|
[self.navigationController setNavigationBarHidden:NO animated:YES];
|
||||||
}
|
}
|
||||||
self.isSelectOnSearch = NO;
|
self.isSelectOnSearch = NO;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark - UISearchBarDelegate Methods
|
#pragma mark - UISearchBarDelegate Methods
|
||||||
|
@@ -127,7 +127,8 @@
|
|||||||
[self beautifySearchBar];
|
[self beautifySearchBar];
|
||||||
[self setBarStyle];
|
[self setBarStyle];
|
||||||
|
|
||||||
if(self.isSelectOnSearch) {
|
// 非IPAD下, 如果当前是isSelectOnSearch才要隐藏
|
||||||
|
if(self.isSelectOnSearch && !IS_IPAD) {
|
||||||
NSLog(@"self.isSelectOnSearch viewWillAppear");
|
NSLog(@"self.isSelectOnSearch viewWillAppear");
|
||||||
[self.navigationController setNavigationBarHidden:YES animated:animated];
|
[self.navigationController setNavigationBarHidden:YES animated:animated];
|
||||||
}
|
}
|
||||||
@@ -671,6 +672,32 @@
|
|||||||
return titleLen;
|
return titleLen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ipad下search bar上移, 但navigation却不隐藏
|
||||||
|
// ipad下模拟没有navigationController, 但是SWTableViewCell selectCell 要用到
|
||||||
|
// http://stackoverflow.com/a/5860412/4269908
|
||||||
|
//- (UINavigationController *)navigationController {
|
||||||
|
// if (IS_IPAD) {
|
||||||
|
// return nil;
|
||||||
|
// } else {
|
||||||
|
// return self.navigationController;
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
- (UINavigationController *)navigationController {
|
||||||
|
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
|
||||||
|
NSString *sourceString = [[NSThread callStackSymbols] objectAtIndex:1];
|
||||||
|
// Example: 1 UIKit 0x00540c89 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1163
|
||||||
|
NSCharacterSet *separatorSet = [NSCharacterSet characterSetWithCharactersInString:@" -[]+?.,"];
|
||||||
|
NSMutableArray *array = [NSMutableArray arrayWithArray:[sourceString componentsSeparatedByCharactersInSet:separatorSet]];
|
||||||
|
[array removeObject:@""];
|
||||||
|
|
||||||
|
// Array[3] == class caller
|
||||||
|
if([array[3] isEqualToString:@"UISearchDisplayController"]) {
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return [super navigationController];
|
||||||
|
}
|
||||||
|
|
||||||
#pragma mark - UISearchDisplayDelegate Methods
|
#pragma mark - UISearchDisplayDelegate Methods
|
||||||
|
|
||||||
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
|
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
|
||||||
@@ -687,6 +714,8 @@
|
|||||||
|
|
||||||
- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller
|
- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller
|
||||||
{
|
{
|
||||||
|
if (!IS_IPAD) {
|
||||||
|
|
||||||
[self setBarStyleBlack];
|
[self setBarStyleBlack];
|
||||||
// cate
|
// cate
|
||||||
if(self.delegate) {
|
if(self.delegate) {
|
||||||
@@ -705,17 +734,21 @@
|
|||||||
self.view.frame = frame;
|
self.view.frame = frame;
|
||||||
}
|
}
|
||||||
self.isSelectOnSearch = YES;
|
self.isSelectOnSearch = YES;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller
|
- (void)searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller
|
||||||
{
|
{
|
||||||
NSLog(@"[%@ %@]", NSStringFromClass([self class]), NSStringFromSelector(_cmd));
|
// NSLog(@"[%@ %@]", NSStringFromClass([self class]), NSStringFromSelector(_cmd));
|
||||||
self.searchedResultsController.delegate = nil;
|
self.searchedResultsController.delegate = nil;
|
||||||
self.searchedResultsController = nil;
|
self.searchedResultsController = nil;
|
||||||
|
|
||||||
[controller.searchResultsTableView reloadData];
|
[controller.searchResultsTableView reloadData];
|
||||||
[self.tableView reloadData];
|
[self.tableView reloadData];
|
||||||
|
|
||||||
|
if (!IS_IPAD) {
|
||||||
|
|
||||||
[self restoreBarStyle];
|
[self restoreBarStyle];
|
||||||
|
|
||||||
// cate
|
// cate
|
||||||
@@ -737,6 +770,8 @@
|
|||||||
[self.navigationController setNavigationBarHidden:NO animated:YES];
|
[self.navigationController setNavigationBarHidden:NO animated:YES];
|
||||||
}
|
}
|
||||||
self.isSelectOnSearch = NO;
|
self.isSelectOnSearch = NO;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark - UISearchBarDelegate Methods
|
#pragma mark - UISearchBarDelegate Methods
|
||||||
|
@@ -194,7 +194,7 @@
|
|||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
<color key="sectionIndexColor" red="0.031372550870000002" green="0.011764707040000001" blue="0.0078431377190000002" alpha="1" colorSpace="deviceRGB"/>
|
<color key="sectionIndexColor" red="0.031372550870000002" green="0.011764707040000001" blue="0.0078431377190000002" alpha="1" colorSpace="deviceRGB"/>
|
||||||
<color key="sectionIndexTrackingBackgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
<color key="sectionIndexTrackingBackgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||||
<searchBar key="tableHeaderView" contentMode="redraw" placeholder="Search Note" translucent="NO" id="wUi-Dr-T3x">
|
<searchBar key="tableHeaderView" contentMode="redraw" text="" placeholder="Search Note" translucent="NO" id="wUi-Dr-T3x">
|
||||||
<rect key="frame" x="0.0" y="64" width="320" height="44"/>
|
<rect key="frame" x="0.0" y="64" width="320" height="44"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||||
<textInputTraits key="textInputTraits"/>
|
<textInputTraits key="textInputTraits"/>
|
||||||
|
@@ -14,6 +14,8 @@
|
|||||||
{
|
{
|
||||||
[super setActive: visible animated: animated];
|
[super setActive: visible animated: animated];
|
||||||
|
|
||||||
|
// [self.searchContentsController.navigationController setNavigationBarHidden: NO animated: NO];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
[self.searchContentsController.navigationController setNavigationBarHidden: NO animated: NO];
|
[self.searchContentsController.navigationController setNavigationBarHidden: NO animated: NO];
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user