2017-09-14 23 views
7

có cùng vấn đề như đã được đăng (không có câu trả lời hoạt động ..), bảng của tôi có chiều rộng cố định và trong iOS 10.x thanh tìm kiếm (trong bảng này), giữ nguyên kích thước khi nhập. Tuy nhiên trong iOS 11, nó nhảy lên trên cùng của màn hình và được kéo dài ra trên tổng chiều rộng. Tất cả các tùy chọn đã được thử;Bộ điều khiển tìm kiếm iOS 11 nhảy lên trên cùng của màn hình

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

nhưng không dường như thay đổi .. nó vẫn nhảy đến toàn bộ chiều rộng đỉnh ..

Bất kỳ lựa chọn khác?

Xcode 9 GM với iOS 11 (Xcode 9 GM với iOS 10.x và tất cả hoạt động tốt)

Trả lời

1

Trước tiên, bạn cần phải thêm UISearchControllerDelegate

sau đó thiết lập đại biểu của bạn

self.searchController.delegate=self; 

Đặt chế độ xem mới sẽ giữ tìm kiếm của bạnController

-(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 
} 

Sau đó thêm thứ phương pháp đại biểu ese

- (void)didPresentSearchController:(UISearchController *)searchController{ 
    [searchController.searchBar setFrame:CGRectMake(0, 0, 300, 30)]; 
} 
- (void)didDismissSearchController:(UISearchController *)searchController{ 
    [searchController.searchBar setFrame:CGRectMake(0, 0, 300, 30)]; 
} 

Đó làm việc cho tôi, tôi hy vọng bạn sẽ làm cho nó hoạt

+2

tôi có thể nhận được mã này để điều chỉnh độ rộng của thanh tìm kiếm, nhưng thanh tìm kiếm của tôi vẫn nhảy ra khỏi đầu của bảng xem của tôi và đi đến cạnh trên của màn hình. Nếu tôi cố gắng di chuyển nó xuống trong didPresentSearchController: sau đó nó sẽ bắt đầu được cắt bỏ một cách kỳ lạ mặc dù cho nó một chiều cao lớn hoặc vị trí Y lớn hơn. –

+0

Bạn có thể đăng một số mã của bạn, tôi không thể tìm ra những gì còn thiếu. – BaranBerk

Các vấn đề liên quan