2017-09-14 49 views
7

zaten yayınlanmıştır aynı sorunu olan üst atlar (cevapların olmayan işleri ..) benim masa sabit genişlik ve iOS 10.x içinde (tableviewheader olan) searchbar, yazarken aynı boyutta kalır. Ancak, iOS 11'de, ekranın üst kısmına atlar ve toplam genişlik üzerinden gerilir. Tüm seçenekler denendi;iOS 11 Searchcontroller ekranında

self.definesPresentationContext = YES; 
tableHeaderView.clipsToBounds = YES; 
etc 

ama hiçbir şey .. yine üst tam genişliğine atlar .. değiştirmek için

Başka seçenekler görünüyor?

Xcode 9 GM iOS 11 ile (Xcode iOS 10.x ile 9 GM ve tüm iyi çalışıyor)

cevap

1

Önce sonra temsilci ayarlamak UISearchControllerDelegate

eklemem gerekiyor

self.searchController.delegate=self; 

-(void) viewDidLoad{ 
    UIView *searchContainerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.searchTable.frame.size.width, 30)]; 
    searchContainerView.layer.masksToBounds=YES; 
    searchContainerView.clipsToBounds=YES; 
    self.tableView.tableHeaderView=searchContainerView; 
    self.searchController.searchBar.layer.masksToBounds=YES; 
    self.searchController.searchBar.clipsToBounds=YES; 
    [searchContainerView addSubview:self.searchController.searchBar]; 
    [self.searchController.searchBar setFrame:CGRectMake(0, 0, 300, 30)];//Make sure that your header view and searchcontroller size is same 
} 

Sonra th eklemek

sizin searchController yapacak yeni bir görünüm yerleştirin benim için çalıştı ese temsilci yöntemleri
- (void)didPresentSearchController:(UISearchController *)searchController{ 
    [searchController.searchBar setFrame:CGRectMake(0, 0, 300, 30)]; 
} 
- (void)didDismissSearchController:(UISearchController *)searchController{ 
    [searchController.searchBar setFrame:CGRectMake(0, 0, 300, 30)]; 
} 

, bunu ben arama çubuğunun genişliğini ayarlamak için bu kodu almak mümkün

+2

çalışması yapmak umuyoruz, ama benim arama çubuğu hala dışarı atlar masaüstümün üstünde ve ekranın üst kenarına gider. Ben didPresentSearchController bunu aşağı hareket çalışırsanız: o zaman bunu bir büyük boy veya daha büyük Y pozisyon vererek rağmen garip bir şekilde kesilecek başlayacaktır. –

+0

Kodunuzun bir kısmını gönderir misiniz, eksik olanı anlayamıyorum. – BaranBerk

İlgili konular