iOS--UISearchBar 및 UISearchDisplayController
4
autocorrectionType - 입력한 텍스트 객체를 자동으로 수정합니다.
backgroundImage--searchbar의 배경 그림, 만약 그림이 신축 가능하거나 1시 너비가 아니라면 일반적으로 평평하게 깔린다
barStyle--컨트롤 스타일
delegate - 컨트롤의 의뢰, UISearchBarDelegate 프로토콜에 따라야 합니다. 기본값은nil입니다.
keyboardType - 입력할 때 키보드 스타일
placeholder - 반투명 힌트 텍스트, 입력 검색 내용이 사라짐
prompt - 컨트롤 맨 위에 표시되는 줄 알림 텍스트
text - 컨트롤 위에 보이는 텍스트 showsBookmark Button - 컨트롤 오른쪽에 책 단추 (텍스트를 입력할 때 사라짐) showsCancel Button - cancel 단추 보이기 (기본값은 표시)Search Results Button - 컨트롤의 오른쪽에 검색 결과 단추 검색 Results Button Selected - 검색 결과 단추가tintColor - bar의 색 (점차적인 효과가 있음) translucent 선택되었는지 - 컨트롤에 투시효과가 있는지 여부를 지정합니다. scope Button Titles - 검색 표시줄 아래에 있는 선택 표시줄,그룹 안의 내용은 단추의 제목 selectedScopeButton Index - 검색 표시줄 아래에 있는 선택 표시줄 단추의 개수 showsScopeBar - 검색 표시줄 아래에 있는 선택 표시줄을 표시할지 여부를 제어합니다 (YES로 설정해야 scopebar를 사용할 수 있습니다)
UISearch Bar는 검색 행위를 실행하지 않습니다.delegate를 사용해야 합니다. 검색 텍스트를 입력하고 button 단추를 누르면 프록시 방법이 검색에 대응하는 작업을 완성합니다.
1. 입력 이벤트 편집하기
2. 버튼 클릭 이벤트:
3. Scope 버튼 이벤트:
UISearch Bar의 의뢰 이벤트 textDidChange를 이용하여 검색 상자에 입력이 완료되면 입력한 텍스트 길이가 >0이면 자신의 검색 방법을 호출하여 검색 결과를 얻은 다음reloadData를 다시 입력하여 새로 고칠 수 있습니다.텍스트 길이 <0을 입력하면 원래 데이터로 복원해야 합니다.이 방법은 검색 텍스트를 입력하면서 결과를 표시할 수 있습니다."검색"단추를 누르고 검색해야 한다면, 이 동작을 검색BarchSearchButtonClicked에 놓으십시오.
UISearch Display Controller를 이용하면 많은 조작을 간소화하고 검색의 목적을 달성할 수 있다.
속성:
active - 검색 인터페이스가 시각화되어 있으며 기본값은 no이며 setactive 방법으로 설정할 수 있습니다.
delegate--의뢰
검색 바 - 검색 디스플레이 컨트롤러가 초기화된 후 검색 바는 수정할 수 없고readonly 속성입니다.
검색Content Controller - 검색 내용을 관리하는 시도 컨트롤러는 일반적으로 UItable View Controller의 실례로 UItable View의 내용을 검색한다는 뜻이다
검색 Results DataSource - 검색 결과의 데이터 소스
검색 Results Delegate - 검색 결과 의뢰
검색 Results TableView - 검색 결과가 어떤tableview에 있는지 보여 줍니다 (read-only).
검색ResultsTitle - 검색 결과 보기의 title
검색 디스플레이 Controller를 초기화하려면:
UISearchBar * theSearchBar = [[[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width-50, 40)] autorelease];
theSearchBar.placeholder = @"enter province name";
theSearchBar.autocorrectionType = UITextAutocorrectionTypeNo;
theSearchBar.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters;
theSearchBar.scopeButtonTitles = [NSArray arrayWithObjects:@"All",@"A",@"B",@"C",@"D" ,nil];
theSearchBar.showsScopeBar = YES;
theSearchBar.keyboardType = UIKeyboardTypeNamePhonePad;
theSearchBar.showsBookmarkButton = YES;
tableView.tableHeaderView = theSearchBar; // searchBar tableView , , ,
UISearchDisplayController * searchdispalyCtrl = [[UISearchDisplayController alloc] initWithSearchBar:theSearchBar contentsController:self];
searchdispalyCtrl.active = NO;
searchdispalyCtrl.delegate = self;
searchdispalyCtrl.searchResultsDelegate=self;
searchdispalyCtrl.searchResultsDataSource = self;
UISearch Display Delegate 위임 방법을 사용하여 검색 작업을 수행합니다.
1. 검색 상태 변경:
2. tableview를 마운트 및 마운트 해제합니다.
3. tableview를 표시하고 숨기기:
4. 검색 조건 변경 시 응답:
검색 디스플레이 컨트롤러는 자체에 검색 Results TableView가 있기 때문에 작업을 수행할 때 먼저 검색 결과의tableView인지 아닌지를 판단해야 한다. 만약에 표시된 것이 검색 결과의 데이터이고 그렇지 않으면 TableView 자체의view라면 원시 데이터를 표시해야 한다.
if(tableView == self.searchDisplayController.searchResultsTableView){
arr = [self.filterContent valueForKey:key]; //
}
else{
arr = [self.localresource valueForKey:key]; //
}
이렇게 하면 매번 RealoadData를 필요로 하지 않는다.
다음과 같은 좋은 인스턴스를 참조할 수 있습니다.http://developer.apple.com/library/ios/#samplecode/TableSearch/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007848
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.