2012-01-11 10 views

答えて

1

までテーブルビューのサイズを変更(のViewControllerでテーブルビュー(ないTableViewController)を使用し、そのビューの上部にだけ検索バーを追加宿泊)。私はSearchBarを使ってフィルタリングする必要があるVCのほぼすべてでこれを行います。これにより、検索バーが常に表示され、うまく機能します。

私は、文字通りそのビデオが何をするか

+0

これは私が望む解決策ではありません。 UIsearchBarの代わりに、UISearchBarと同じ動作をするUIViewがあります。これは、ビューを上にスクロールすると表示されますが、スクロールがビューをスクロールしてナビゲーションバーの後ろに隠れてしまう場合です。 –

0

する必要がある場合は、私は完全な例を送ることができますが、それはtableHeaderViewを追加しないと、それは細胞.contentViewプロパティを使用して最初のセルにカスタムビューを置き、それでありますテストセルの追加を開始します。そのため、cellViewForIndexPathメソッドでindexPathを取得し、それが0かどうかを確認してカスタムビューを追加します。それ以外の場合は、セルを追加します。すべての動画はありませんです1によって細胞を下に移動し、あなたがそこにカスタムビューを置くために必要なすべてのコード

[cell.contentView addSubview:CustomView]; 

を使用してビューをCELL0する追加されます。

+0

いいえ。テーブルヘッダービューにあるビデオの赤い矩形が検索バーと同じ動作をしたいと思います。ビデオでは、スクロールすると検索バーが非表示になりますが、uiview(赤い四角形)は非表示になりません。私は検索バーのようにスクロールすると赤い矩形を隠したい。 –

+0

赤い四角形は、表のヘッダービューの内側にあり、表のビューのセルにはありません。 –

1

は、私は(私の知る限り、文書化されていない)自動で行動をスクロール模倣はあなたが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]; 

確かに、ハックのビットが、この戦略が動作しているように見えません。

0

誰かが私のようにこれを読んだら、この問題の解決策を見つけました。それはかなり単純です

myTableView.contentOffset = CGPointMake(0, heightOfView); 

したがって、このソリューションのもう一つの欠点は、ビューの高さを知る必要があります。スクロール可能なテーブルビューに十分なコンテンツがなく、スクロールするとビューが表示され、それを隠すことはできません。私の場合、これは現在受け入れられています。

UIViewで機能するUISearchBar機能を持っている人がいる場合。これは、単に検索バーの高さにより、スクロールビューを相殺することはトリックを行います、誰か

0

は大安バーミューレンの答えを繰り返すのに役立ちます

に希望を:)投稿してください。私はテーブルのヘッダービューに検索バーを追加するので、ヘッダービューの高さの高さだけスクロールを移動しています。私は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); 
関連する問題