2010-11-14 14 views
5

TableView ürününe SearchBar eklemek istiyorum. UISearchBar'u IB'de UITableView başlığına sürükledim ve UITableView ile kaydırdım. UISearchBar UITableViewController içinde?

Şimdi UITableViewController kullanmayı değişti ve ben UITableViewController ile sağlanan UITableView başlığındaki bir UISearchBar sürüklediğinizde, hiç görünmüyor.

Bir numara var mı?

Tür

cevap

19

Sen bunu bu yardımcı olur programlı

UISearchBar *tempSearchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 0)]; 
self.searchBar = tempSearchBar; 
[tempSearchBar release]; 
self.searchBar.delegate = self; 
[self.searchBar sizeToFit]; 
self.tableView.tableHeaderView = self.searchBar; 

Umut yapabilirsiniz görüyor.

+0

Harika çözüm. Bir arama çubuğu eklemek için daha önce UIViewController kullanmalıydım. Şimdi çözümümüzle UITableViewController'ı kullanabilirim. –

4

Uçtaki arama çubuğunu her tanımladığımda, tablo görünümünün başlığına amaç için eklemiyorum. Bunun yerine viewDidLoad işlevine ayarladım. Retterdesdialogs çözümü de işe yarıyor, o yüzden neden daha fazla oy almadığı konusunda emin değilim. Paket yöntem halen görülüyor olmalıdır:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    tableView.tableHeaderView = searchBar; 
} 
1

Ayrıca Alloc ve initWithNib yoluyla init eğer, tableview denetleyicisi başlatıldı nasıl bağlıdır. Ancak tablo görünümü denetleyicisi ile varsayılan uygulama yöntemi initWithStyle olduğunu düşünüyorum. Eğer initWithStyle ile tahsis edip init yaparsanız, nib dosyası asla yüklenmeyecektir.

0

Sadece denedim ve benim için çalıştı, bir numara olmamalı. Projenizin distile versiyonunu bir yere göndermek isterseniz, size yardımcı olabilirim.

7

İki UITableViewDelegate Protokolü yöntemi –tableView: viewForHeaderInSection: ve –tableView: heightForHeaderInSection yöntemlerini kullanarak işe almayı düşünüyorum.

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{ 
    if (section == 0) { 
     UISearchBar *tempSearchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 0)]; 
     [tempSearchBar sizeToFit]; 
     return tempSearchBar; 
    } 
    return [UIView new]; 
} 

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ 
    if (section == 0) { 
     return 40.0f; 
    } 
    return 0.1f; 
} 

Yardım edin.

+1

Bu yardımcı oldu. Teşekkürler. –

+0

teşekkürler .... Harika :) –

İlgili konular