2010-05-25 37 views
17

Với bất kỳ hình ảnh nào tôi cố gắng để intialize UIBarButtonItem, nó chỉ hiển thị một nền trắng trong kích thước của hình ảnh. Ngay cả khi tôi mệt mỏi trong trình xây dựng giao diện, kết quả cũng giống nhau. Tất cả những hình ảnh này khi được sử dụng với các đối tượng khác hoạt động hoàn hảo.Hình ảnh UIBarButtonItem không được hiển thị và thay vào đó một hình chữ nhật màu trắng có kích thước hình ảnh được hiển thị, Tại sao?

Tôi có thể giải quyết vấn đề này bằng cách nào?

+0

Khó nói mà không nhìn thấy mã của bạn hoặc thiết lập IB – willcodejavaforfood

Trả lời

18

Chỉ các giá trị alpha trong hình ảnh được sử dụng để tạo hình ảnh nút thanh. Bất kỳ hình ảnh nào bạn cung cấp đều được chuyển đổi thành hình ảnh với sắc thái trắng, dựa trên giá trị alpha.

Vì vậy, vì hình ảnh của bạn hoàn toàn trắng nên rõ ràng bạn không có bất kỳ sự minh bạch nào.

Các guidelines có điều này để nói:

  • Sử dụng định dạng PNG.
  • Sử dụng màu trắng tinh khiết với alpha thích hợp.
  • Không bao gồm bóng đổ.
  • Sử dụng tính năng chống răng cưa.
  • Nếu bạn quyết định thêm góc xiên, hãy chắc chắn rằng nó là 90 ° (để giúp bạn làm điều này, hãy tưởng tượng một nguồn sáng được đặt ở đầu biểu tượng).
  • Đối với các biểu tượng trên thanh công cụ và thanh điều hướng, hãy tạo biểu tượng có kích thước khoảng 20 x 20 pixel.
  • Đối với biểu tượng thanh tab, hãy tạo biểu tượng có kích thước khoảng 30 x 30 pixel.

Lưu ý: Biểu tượng mà bạn cung cấp cho thanh công cụ, thanh định hướng, và tab thanh được sử dụng như một mặt nạ để tạo ra các biểu tượng bạn thấy trong ứng dụng của bạn. Không cần phải tạo để tạo một biểu tượng đầy đủ màu sắc .

Tuy nhiên bạn có thể sử dụng một giao diện tùy chỉnh để có được một hình ảnh đầy màu sắc như câu hỏi này cho thấy:

Can I have a UIBarButtonItem with a colored image?

Đây là một chút trên đầu và mặc dù nó sẽ là tốt nhất để dính vào các hướng dẫn và sử dụng một nút bình thường với một hình ảnh được định dạng phù hợp.

9

Trong ios 7 trở đi này sẽ giúp

UIImage *image = [[UIImage imageNamed:@"myImage.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(YOUR_METHOD:)]; 
5

Trong Swift 3 tôi thấy rằng các công việc sau - đây hiển thị như một mảng của hơn một barButtonItem

let barButtonItem1 = UIBarButtonItem(image: UIImage(named: "myImage")?.withRenderingMode(.alwaysOriginal) , style: .plain ,target: self, action: #selector(yourAction)) 
    let barButtonItem2 = UIBarButtonItem(image: UIImage(named: "myImage")?.withRenderingMode(.alwaysOriginal) , style: .plain, target: self, action: #selector(yourAction)) 

navigationItem.rightBarButtonItems = [barButtonItem1, barButtonItem2] 

Điều này cho thấy barButtons x2 bên phía tay phải. Để thể hiện ở bên trái chỉ cần thay đổi để

navigationItem.leftBarButtonItem = [barButtonItem1, barButtonItem2]

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