0

2 つの問題があります。

  1. iPhoneの画面に検索バーがあります。画面をスクロールすると、検索バーもスクロールされます。これを修正するか、絶対にしたい。
  2. A と入力すると、アルファベット A で始まるすべての単語が取得されるはずです。

私が試しているコード:

- (void)viewDidLoad {
    [super viewDidLoad];
    const NSInteger searchBarHeight = 45;
    UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0,
    self.tableView.frame.size.width, searchBarHeight)];
    searchBar.delegate = self;
    self.tableView.tableHeaderView = searchBar;
    [searchBar release];
    UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:@"Refresh" 
    style:UIBarButtonItemStyleBordered target:self action:@selector(onAddContact:)];
    self.navigationItem.rightBarButtonItem = addButton;
    UILabel *label = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
    label.backgroundColor = [UIColor clearColor];
    label.font = [UIFont boldSystemFontOfSize:20.0];
    label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
    label.textAlignment = UITextAlignmentCenter;
    label.textColor = [UIColor whiteColor]; // change this color
    self.navigationItem.titleView = label;
    label.text = NSLocalizedString(@"All Contacts", @"");

    [label sizeToFit];
    content = [DataGenerator wordsFromLetters];
    indices = [[content valueForKey:@"headerTitle"] retain];
}
4

2 に答える 2

1

検索バーをテーブル ビューから分離する必要があります。検索バーをテーブルに追加するのではなく、ビューに追加するだけです。コードは次のとおりです。

[self.view addSubview:searchBar];

次に、テーブル ビューを追加します。

UISearchDisplayController の例については、次のチュートリアルに従ってください: http://cocoabob.net/?p=67 または http://blog.mugunthkumar.com/coding/iphone-tutorial-uisearchdisplaycontroller-with-nspredicate/

ソースコードも公開されています。わからない場合は、お知らせください。これらすべてがすでに実装されているプロジェクトがあります。

于 2012-12-17T07:44:28.303 に答える
0

ここでスクロールすると、この行を見るのheaderviewとして追加するのでUITableView、その時もUISearchBarスクロールします..UISearchBarUITableView

self.tableView.tableHeaderView = searchBar;

そのスクロールUITableView、ここで修正するには、フレーム付きUISearchBarのサブビューとして追加しますself.viewが、例の外側に追加しUITableViewます..

[yourSearchBar setFrame:CGRectMake(0, 0, 320, 44)];
[self.view addSubview:yourSearchBar];

詳細については、以下のチュートリアルとデモのリンクを参照してくださいUISearchBarUITableView

  1. フィルタリング-a-uitableview-with-a-uisearchbar-using-core-data
  2. connect-uitableview-with-uisearchbar- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText // メソッドを使用して、このチュートリアルの検索バー textfield 変更イベントで配列をフィルター処理する方法を確認します
于 2012-12-17T07:38:06.610 に答える