2010-06-09 29 views
6

Tôi hiện đang có UISearchBar (được đính kèm với UISearchDisplayController), nhưng tôi đã giảm độ rộng của thanh tìm kiếm để tôi có thể hiển thị nút tùy chỉnh ở bên phải khi thanh tìm kiếm không được chọn. Nút được sử dụng để truy cập các chế độ xem khác.Nút ẩn hoạt ảnh UISearchBar

Tuy nhiên, khi tôi chọn thanh tìm kiếm và sau đó nhấn hủy (hoặc thậm chí thực hiện tìm kiếm) và trở lại chế độ xem bình thường, nơi thanh tìm kiếm sẽ được hiển thị cùng với nút tùy chỉnh của tôi, thanh tìm kiếm sẽ hoạt hóa và chiếm hết phòng cho nút và không được hiển thị. Về cơ bản, thanh tìm kiếm chiếm toàn bộ chiều rộng của màn hình khi tôi chỉ muốn nó chiếm một phần của nó.

Có cách nào để ngăn thanh tìm kiếm hoạt ảnh đến toàn bộ chiều rộng màn hình không?

Đây là cách tôi đã xác định CGRect của thanh tìm kiếm:

self = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 250.0f, 45.0f)] 

Trả lời

1

này SO post có thể giúp đỡ. Nó có vẻ như bạn cần phải phân lớp UISearchBar để ngăn chặn nó làm bản vẽ bình thường của nó.

CẬP NHẬT Tôi muốn sử dụng UISearchBar trong UINavigationBar và thay đổi kích thước để điền vào thanh khi chạm vào - giống như hành vi trong ứng dụng Safari. Cách duy nhất tôi có thể làm điều này là sử dụng trực tiếp UISearchBar. Vấn đề của bạn hơi khác, nhưng bạn có thể thử nhận hành vi giao diện người dùng mà bạn muốn bằng cách chỉ sử dụng thanh tìm kiếm để bắt đầu; sau đó dây lên logic để tìm kiếm sau đó; tức là không dựa vào UISearchDisplayController?

3

Cuối cùng, câu trả lời cho điều này đơn giản hơn tôi nghĩ. Đối với một số lý do SDK iPhone lấp đầy chiều rộng của khung thanh tìm kiếm, vì vậy tôi phải liên tục đặt lại kích thước theo kích thước tôi muốn mỗi lần người dùng nhấn nút hủy và sự kiện searchBarCancelButtonClicked() được kích hoạt. Một [searchBar setFrame: frame] đơn giản đã giải quyết nó. :)

Peter, sự cố trong bài đăng bạn đã liên kết hơi khác một chút, tôi đã có thể thay đổi kích thước thanh tìm kiếm thành những gì tôi muốn, những gì tôi cần là dừng nó trở lại toàn bộ chiều rộng. Cảm ơn các liên kết mặc dù.

+1

Biết phương thức ủy quyền thanh tìm kiếm để sử dụng ở đây là khóa. Có quá nhiều phương pháp có thể, IMHO. EDIT: Trên thực tế, thiết lập các khung trong 'searchBarCancelButonClicked' không làm việc cho tôi. Tôi đã từ chức bản thân mình để thiết lập các khung trong phương pháp 'searchDisplayControllerDidEndSearch' thay vào đó, đó là gây phiền nhiễu, bởi vì nó animates đến chiều rộng đầy đủ của màn hình, và sau đó animates trở lại kích thước tôi muốn. – livingtech

+0

Bài đăng của tôi hơi cũ, có thể có gì đó đã thay đổi trong một năm. Tôi không thể kiểm tra xem mã của tôi có hoạt động hay không. Hy vọng bạn sẽ sớm tìm được giải pháp! –

+0

@livingtech Tôi có vấn đề chính xác của bạn. Bạn đã bao giờ tìm thấy một giải pháp? Tôi đang cố gắng để tìm bất kỳ cách nào để sử dụng UISearchDisplayController, nhưng tôi nghĩ rằng tôi sẽ phải thực hiện chức năng của nó trên của riêng tôi, chỉ vì một trong những lỗi rõ ràng. – KKendall

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