2010-05-07 14 views
21

Định vị ngang của UIBarButtonItems là không có vấn đề gì, tôi có thể chỉ cần đệm không gian với các mục không gian cố định/linh hoạt. Tuy nhiên, tôi dường như không thể điều chỉnh mục thanh công cụ theo chiều dọc. UIToolbar không có thuộc tính căn chỉnh và UIBarButtonItem không có cách nào để thiết lập khung của nó.Làm cách nào để bạn điều chỉnh khung hoặc căn chỉnh theo chiều dọc của UIBarButtonItem được chứa bởi một cá thể UIToolbar?

Tôi cần làm điều này vì chúng tôi đang sử dụng kết hợp các biểu tượng tùy chỉnh được tạo bằng initWithImage và biểu tượng chuẩn được tạo bằng initWithBarButtonSystemItem. Các biểu tượng tùy chỉnh không được căn giữa đúng cách (chúng được bù đắp lên trên, liên quan đến các biểu tượng hệ thống, được căn giữa), vì vậy thanh công cụ trông có vẻ khó xử.

+2

Tôi khuyên bạn nên 1) sử dụng tùy chỉnh và không phải thanh công cụ; hoặc 2) sửa hình ảnh vì chúng sẽ dễ điều chỉnh hơn. –

+0

1 không phải là một lựa chọn cho tôi. Tôi không đưa ra quyết định thiết kế trực quan. Tôi không quyết định giao diện của giao diện người dùng, hiệu ứng của các nút là gì hoặc vị trí của chúng. 2 là điều tôi muốn tránh nếu có thể, vì nó có nghĩa là trả lại công việc cho nhà thiết kế trực quan. Thật là tẻ nhạt khi liên tục truyền lại hình ảnh qua lại, để tinh chỉnh nó và sau đó kiểm tra kết quả thông qua thử và sai. Cũng không có bất kỳ đảm bảo rằng điều này sẽ khắc phục vấn đề ... Ngay cả khi chúng tôi thay đổi kích thước biểu tượng, UIKit vẫn có thể thay đổi nó lên. Bất kỳ đề xuất nào khác? – akaii

+1

Bất kỳ ý tưởng nào về cách thực hiện nó cho văn bản? Giải pháp imageinsets không hoạt động đối với văn bản. – easythrees

Trả lời

1

Dường như không phải là cách đơn giản, sạch sẽ để làm điều này, vì vậy tôi đã đi với một hack xấu xí nhưng chức năng: làm tổ. Tôi bị mắc kẹt một UIToolbar có chứa các nút vào một UIView mà tôi thiết lập như là một UIBarButtonItem trên thanh công cụ ban đầu bằng cách sử dụng initWithCustomView. UIToolbar thứ hai có thể di chuyển tự do trong UIView, và biểu tượng thực sự giữ lại tất cả các thuộc tính của một UIBarButtonItem.

Ugh.

3

imageInsets property of UIBarItem?

34

Có, imageInsets đã làm việc tốt cho tôi!

float topInset = 4.0f; 
myUIBarButton.imageInsets = UIEdgeInsetsMake(topInset, 0.0f, -topInset, 0.0f); 

di chuyển hình ảnh xuống 4 pixel.

tránh điều này:

float topInset = 4.0f; 
myUIBarButton.imageInsets = UIEdgeInsetsMake(topInset, 0.0f, 0.0f, 0.0f); 

di chuyển hình ảnh 4 pixel xuống (NHƯNG lại tỷ lệ chia chiều cao hình ảnh như vậy có vẻ nén).

+0

Vui mừng khi thấy tôi không phải là người duy nhất có vấn đề này. Mặc dù, "topInset = 2.0f" đã làm việc cho tôi. –

+0

cảm ơn bạn thực sự bạn đã tiết kiệm thời gian của tôi –