2016-10-12 4 views
0

please see my screen shot i need thisthis is the previous output before adding image Мне нужна панель поиска под заголовком навигации, как это сделать программно или через панель рассказов.как добавить строку поиска под заголовком навигации

UISearchBar *searchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0,30, 250,44)]; 
searchBar.placeholder = @"Search"; 
UIBarButtonItem *searchBarItem = [[UIBarButtonItem alloc]initWithCustomView:searchBar]; 
searchBarItem.tag = 123; 
searchBarItem.customView.hidden = YES; 
searchBarItem.customView.alpha = 0.0f; 
self.navigationItem.leftBarButtonItem = searchBarItem; 
self.navigationItem.title = @"locations"; 
+0

вы можете показать некоторый снимок экрана, как вы и нужен –

+0

Что вопроса вы лицо ? скажите нам с помощью какого-то Экран –

+0

, вам нужно это внутри панели наивности или нижней панели навигации –

ответ

2

Вы добавили строку поиска, как UIBarButtonItem, то почему его не видно.

Если вы хотите, чтобы отобразить панель поиска в месте зрения титульного панели навигации используйте этот код

код, чтобы показать панель навигации вместо Заголовок навигации:

UISearchBar *searchBar = [[UISearchBar alloc]init]; 
searchBar.tintColor = [UIColor grayColor]; 
searchBar.backgroundColor = [UIColor redColor]; 
searchBar.placeholder = @"Search"; 
self.navigationItem.titleView = searchBar; 

Выход:

enter image description here

Код для показать панель навигации ниже панели навигации:

UISearchBar *searchBar1 = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 64, [UIScreen mainScreen].bounds.size.width, 64)]; 
searchBar1.tintColor = [UIColor grayColor]; 
searchBar1.backgroundColor = [UIColor redColor]; 
searchBar1.placeholder = @"Search"; 
[self.view addSubview:searchBar1]; 

UPDATE:

self.navigationController.navigationBar.barTintColor = [UIColor redColor]; 
searchBar1.searchBarStyle = UISearchBarStyleMinimal; 

UISearchBar *searchBar1 = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 64, [UIScreen mainScreen].bounds.size.width, 64)]; 
searchBar1.tintColor = [UIColor grayColor]; 
searchBar1.searchBarStyle = UISearchBarStyleMinimal; 
searchBar1.backgroundColor = [UIColor redColor]; 
searchBar1.placeholder = @"Search"; 
[self.view addSubview:searchBar1]; 

[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setDefaultTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}]; 

Выход:

enter image description here

Обновленный выход

Чтобы настроить TextField:

UISearchBar *searchBar1 = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 64, [UIScreen mainScreen].bounds.size.width, 64)]; 
searchBar1.tintColor = [UIColor grayColor]; 
searchBar1.searchBarStyle = UISearchBarStyleMinimal; 
searchBar1.backgroundColor = [UIColor redColor]; 
searchBar1.placeholder = @"Search"; 
[self.view addSubview:searchBar1]; 

[searchBar1 setSearchFieldBackgroundImage:[UIImage imageNamed:@"text-input.png"] forState:UIControlStateNormal]; 

Изображение Я использовал имеет высоту 30 пикселя, как текстовое поле поискового бара.

здесь изображение:

enter image description here

И выход:

enter image description here Надеюсь, что это помогает ...

Счастливый кодирования ...

updated output

+0

работает хорошо. но мне нужно установить цвет фона для контроллера навигации и панели поиска, как это сделать. – ios

+0

Вы можете использовать этот код, чтобы заставить панель навигации выглядеть красным: self.navigationController.navigationBar.barTintColor = [UIColor redColor]; – Janmenjaya

+0

Этот код изменяет только цвет контроллера навигации. но мне нужно установить поиск внутри контроллера навигации, а также под заголовком, который не отображается. – ios

0

Мы можем также использовать текстовое поле в строке поиска, он работает отлично в моем приложении,

Перейти к StoryBoard и сделать следующие изменения

От объекта Library--> type view и перетаскивания storyboard и вставьте ниже навигационной панели.

Добавить текстовое поле в представление и назначить выходы и делегаты.

теперь переходит к viewcontroller.m и вставьте следующий код

-(void)textFieldDidChange:(UITextField *)textField 
 
{ 
 
    searchTextString=textField.text; 
 
    [self updateSearchArray:searchTextString]; 
 
} 
 

 

 
-(void)updateSearchArray:(NSString *)searchText 
 
{ 
 
    if(searchText.length==0) 
 
    { 
 
     isFilter=NO; 
 
    } 
 
    else 
 
    { 
 
     isFilter=YES; 
 
     searchArray=[[NSMutableArray alloc]init]; 
 
    
 
     for(NSString *string in responceArray) 
 
     { 
 
      NSRange stringRange = [[NSString stringWithFormat:@"%@",string] 
 
           rangeOfString:searchtext.text options:NSCaseInsensitiveSearch]; 
 
     
 
      if (stringRange.location != NSNotFound) 
 
      { 
 
       [searchArray addObject:string]; 
 
      } 
 
     } 
 
     [jobsTable reloadData]; 
 
    } 
 
}

Теперь он будет работать нормально ..