tableHeaderViewにUISearchBarがある場合、テーブルビューをスクロールすると検索バーが自動的に非表示になります。私は同じ動作が欲しい代わりにtableHeaderViewにUISearchBarを追加します。私はUIViewを追加したいと思います。tableHeaderViewのUIViewを使用してUISearchBarビヘイビアを作成する
これは、問題のビデオです:
http://www.youtube.com/watch?v=NPTRaT2A5vU
tableHeaderViewにUISearchBarがある場合、テーブルビューをスクロールすると検索バーが自動的に非表示になります。私は同じ動作が欲しい代わりにtableHeaderViewにUISearchBarを追加します。私はUIViewを追加したいと思います。tableHeaderViewのUIViewを使用してUISearchBarビヘイビアを作成する
これは、問題のビデオです:
http://www.youtube.com/watch?v=NPTRaT2A5vU
までテーブルビューのサイズを変更(のViewControllerでテーブルビュー(ないTableViewController)を使用し、そのビューの上部にだけ検索バーを追加宿泊)。私はSearchBarを使ってフィルタリングする必要があるVCのほぼすべてでこれを行います。これにより、検索バーが常に表示され、うまく機能します。
私は、文字通りそのビデオが何をするか
する必要がある場合は、私は完全な例を送ることができますが、それはtableHeaderViewを追加しないと、それは細胞.contentViewプロパティを使用して最初のセルにカスタムビューを置き、それでありますテストセルの追加を開始します。そのため、cellViewForIndexPathメソッドでindexPathを取得し、それが0かどうかを確認してカスタムビューを追加します。それ以外の場合は、セルを追加します。すべての動画はありませんです1によって細胞を下に移動し、あなたがそこにカスタムビューを置くために必要なすべてのコード
[cell.contentView addSubview:CustomView];
を使用してビューをCELL0する追加されます。
いいえ。テーブルヘッダービューにあるビデオの赤い矩形が検索バーと同じ動作をしたいと思います。ビデオでは、スクロールすると検索バーが非表示になりますが、uiview(赤い四角形)は非表示になりません。私は検索バーのようにスクロールすると赤い矩形を隠したい。 –
赤い四角形は、表のヘッダービューの内側にあり、表のビューのセルにはありません。 –
は、私は(私の知る限り、文書化されていない)自動で行動をスクロール模倣はあなたがUINavigationController内UITableView.tableHeaderViewに割り当てられたUISearchBarから取得し、適切にソリューションを見るためには至っていません。あなたのビデオのほかにも、この動作はAppleのiOSアプリケーション(メールや音楽など)でも見ることができます。
これを実現する方法の1つは、UISearchBarをtableHeaderViewに割り当て、UISearchBar(UIViewサブクラス)の上にカスタムビューを追加することです。 &を隠すために、特別なテーブルスクロールの動作が得られますが、代わりに独自のビューを使用してテーブルのヘッダーを表示します。これは、ビューをUISearchBarと同じサイズにすることができることを前提としています。
のviewDidLoadで例えば、:
self.tableView.tableHeaderView = [[[UISearchBar alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 44.0f)] autorelease];
[self.tableView.tableHeaderView addSubview:myView];
確かに、ハックのビットが、この戦略が動作しているように見えません。
誰かが私のようにこれを読んだら、この問題の解決策を見つけました。それはかなり単純です
myTableView.contentOffset = CGPointMake(0, heightOfView);
したがって、このソリューションのもう一つの欠点は、ビューの高さを知る必要があります。スクロール可能なテーブルビューに十分なコンテンツがなく、スクロールするとビューが表示され、それを隠すことはできません。私の場合、これは現在受け入れられています。
UIViewで機能するUISearchBar機能を持っている人がいる場合。これは、単に検索バーの高さにより、スクロールビューを相殺することはトリックを行います、誰か
は大安バーミューレンの答えを繰り返すのに役立ちます
に希望を:)投稿してください。私はテーブルのヘッダービューに検索バーを追加するので、ヘッダービューの高さの高さだけスクロールを移動しています。私はiOS8をターゲットにしており、これはviewdidloadメソッドに行きます。コードビットは次のとおりです。
//initiate the search controller
//use the original tableview controller itself to manage search
//don't dim the underlying content to show the filtered results as the user types into the search bar.
//search scope bar is not used. assign an empty array to the scopebuttontitles property (this is required with iOS8)
self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.searchController.searchResultsUpdater = self;
self.searchController.dimsBackgroundDuringPresentation = NO;
self.searchController.searchBar.scopeButtonTitles = [[NSArray alloc] init];
//use the original tableview controller as a delegate and implement the UISearchResultsUpdating protocol
//add the search bar view to the table view header
//search view covers the table view when active. make the table view controller define the presentation context
//to ensure that search bar fits the screen. (this is required with iOS8)
self.searchController.searchBar.delegate = self;
self.tableView.tableHeaderView = self.searchController.searchBar;
self.definesPresentationContext = YES;
[self.searchController.searchBar sizeToFit];
//offset scrollview content by tableheaderview height
self.tableView.contentOffset = CGPointMake(0, self.tableView.tableHeaderView.bounds.size.height);
これは私が望む解決策ではありません。 UIsearchBarの代わりに、UISearchBarと同じ動作をするUIViewがあります。これは、ビューを上にスクロールすると表示されますが、スクロールがビューをスクロールしてナビゲーションバーの後ろに隠れてしまう場合です。 –