0
IOS 7の検索アイコンをタップしたときにナビゲーションバーに検索バーを表示する方法について質問したいと思います。ほとんどのチュートリアルはIOS 7をサポートしていませんその機能をどのように実装するかについてのアイデアを伝えることができます。ナビゲーションバーのディスプレイ検索バーIOS7
ここに私たちのUIのスクリーンショットです:
IOS 7の検索アイコンをタップしたときにナビゲーションバーに検索バーを表示する方法について質問したいと思います。ほとんどのチュートリアルはIOS 7をサポートしていませんその機能をどのように実装するかについてのアイデアを伝えることができます。ナビゲーションバーのディスプレイ検索バーIOS7
ここに私たちのUIのスクリーンショットです:
(1)は、その親ビューに等しい幅を有するビューの上部にあなたのXIBでUISearchBar
を追加します。必要な制約を追加する。
(2)IBOutlet
を設定し、その検索バーにデリゲートを割り当てます。
(3)デリゲートメソッド、次の実装:
# pragma mark
# pragma mark - SearchBar delegate
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
[searchBarWatches resignFirstResponder];
searchBarWatches.text = @"";
[UIView animateWithDuration:0.25 animations:^{
searchBarWatches.alpha = 0.0;
} completion:^(BOOL finished) {
[searchBarWatches setHidden:TRUE];
searchBarWatches.alpha = 1.0;
}];
}
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
// searchBarTextDidBeginEditing
}
- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar
{
strSearchText = @"";
[self searchWatchWithString:strSearchText];
}
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
searchText = [searchText stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
if([searchText isEqualToString:strSearchText]) {
return;
}
if([searchText length] > 0) {
strSearchText = searchText;
} else {
strSearchText = @"";
}
[self searchWatchWithString:strSearchText];
}
-(void)searchWatchWithString:(NSString *)strSearch
{
if([strSearch length] > 0)
{
NSPredicate *predicate1 = [NSPredicate predicateWithFormat:....];
NSPredicate *predicate2 = [NSPredicate predicateWithFormat:....];
NSPredicate *predicate3 = [NSPredicate predicateWithFormat:....];
NSPredicate *predicate = [NSCompoundPredicate andPredicateWithSubpredicates:@[predicate1, predicate2, predicate3]];
[[self.fetchedResultsController fetchRequest] setPredicate:predicate];
}
else
{
// Empty string
}
[self performFetch];
[self reloadTableViewAnimated:TRUE];
}
-(void)reloadTableViewAnimated:(BOOL)animated
{
if(animated) {
[tblProducts reloadSections:[NSIndexSet indexSetWithIndex:0]];
} else {
[tblProducts reloadData];
}
}
(4)検索ボタン、ショーの検索バーをクリックするだけで:
- (IBAction)btnSearchPressed:(id)sender
{
[searchBarWatches setHidden:FALSE];
[self.view bringSubviewToFront:searchBarWatches];
[searchBarWatches becomeFirstResponder];
}