2010-06-16 32 views
15

Tôi muốn hiển thị không có thanh phạm vi khi bảng trống (trước khi thanh tìm kiếm chỉnh sửa lần đầu tiên), không có thanh phạm vi khi chỉnh sửa và cuối cùng hiển thị khi chỉnh sửa xong. Tôi biết về giao thức UISearchBarDelegate, nhưng tôi không biết cách hiển thị/ẩn thanh phạm vi bằng hoạt ảnh. Tôi biết UISearchBar có setShowsScopeBar:, nhưng không setShowsScopeBar:animated: cách thức hoạt động cho setShowsCancelButton:animated.Làm cách nào để ẩn/hiển thị thanh phạm vi của UISearchBar bằng hoạt ảnh?

Chỉnh sửa Điều quan trọng là gọi [searchBar sizeToFit] sau khi hiển thị/ẩn thanh phạm vi. Có cách nào tốt để tạo hiệu ứng này không? (Tôi có nên làm this? Nó có vẻ không hoạt động.)

+0

Tự hỏi cùng điều đó, có một chút không nhất quán. –

Trả lời

43

Dưới đây là cách thực hiện nút hủy và thanh phạm vi sẽ chỉ được hiển thị trong khi chỉnh sửa.

mã hoàn chỉnh với tiền thưởng nhỏ của hiệu ứng động vào nút hủy của (dis) xuất hiện:

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar { 
    searchBar.showsScopeBar = YES; 
    [searchBar sizeToFit]; 
    [searchBar setShowsCancelButton:YES animated:YES]; 

    return YES; 
} 

- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar { 
    searchBar.showsScopeBar = NO; 
    [searchBar sizeToFit]; 
    [searchBar setShowsCancelButton:NO animated:YES]; 

    return YES; 
} 

EDIT - Phiên bản Swift 3

public func searchBarShouldBeginEditing(_ searchBar: UISearchBar) -> Bool { 
    searchBar.showsScopeBar = true 
    searchBar.sizeToFit() 
    searchBar.setShowsCancelButton(true, animated: true) 

    return true 
} 

public func searchBarShouldEndEditing(_ searchBar: UISearchBar) -> Bool { 
    searchBar.showsScopeBar = false 
    searchBar.sizeToFit() 
    searchBar.setShowsCancelButton(false, animated: true) 

    return true 
} 

Nguồn: http://www.alexandre-gomes.com/?p=418

+2

mã hoạt động, nhưng nó hiển thị thanh phạm vi trên cùng một dòng với thanh tìm kiếm. Có cách nào để tự động hiển thị thanh phạm vi, nhưng dưới đây là trường tìm kiếm? – andrei

+0

Bạn đã bao giờ tìm thấy một cách xung quanh điều này, @andrei? –

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