2010-05-25 22 views
17

Z każdym obrazem próbuję zainicjować UIBarButtonItem, pokazując tylko białe tło w rozmiarze obrazu. Nawet gdy zmęczony budowaniem interfejsu, wynik jest taki sam. Wszystkie te obrazy w połączeniu z innymi obiektami działają doskonale.UIBarButtonItem Obraz nie jest wyświetlany, a zamiast niego wyświetlany jest biały prostokąt w rozmiarze obrazu, dlaczego?

Jak mogę to rozwiązać?

+0

trudno powiedzieć, nie widząc kodu lub konfiguracji IB – willcodejavaforfood

Odpowiedz

18

Do tworzenia obrazu przycisku paska używane są tylko wartości alfa na obrazie. Bez względu na to, jaki obraz podasz, zostanie przekształcony na obraz o odcieniach bieli, oparty na wartościach alfa.

Ponieważ obraz jest całkowicie biały, jasne jest, że nie ma żadnej przezroczystości.

guidelines mają do powiedzenia:

  • Użyj formatu PNG.
  • Użyj czystej bieli z odpowiednią alfa.
  • Nie dołączaj cienia.
  • Użyj wygładzania.
  • Jeśli zdecydujesz się na dodanie skosu, upewnij się, że jest to 90 ° (aby ułatwić sobie to ustawienie, wyobraź sobie źródło światła umieszczone u góry ikony).
  • Aby wyświetlić ikony paska narzędzi i paska nawigacji, należy utworzyć ikonę, która będzie mierzyć około 20 x 20 pikseli.
  • W przypadku ikon paska kart utwórz ikonę o wymiarach około 30 x 30 pikseli.

Uwaga: Ikona podać do paski narzędzi, pasków nawigacyjnych, a zakładka barów jest stosowany jako maska ​​do tworzenia ikonę widoczny aplikacji. To nie jest konieczne, aby utworzyć pełnokolorową ikonę .

Można jednak użyć niestandardowego widoku aby uzyskać pełen kolorów obraz jako kwestia ta pokazuje:

Can I have a UIBarButtonItem with a colored image?

To jest trochę przesadzony i choć byłoby najlepiej trzymaj się wytycznych i użyj normalnego przycisku z odpowiednio sformatowanym obrazem.

9

w iOS 7 roku to pomoże

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

w Swift 3 stwierdziliśmy, że następujące prace - tu pokazane jako tablicę więcej niż jednego 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] 

To pokazuje barButtons x2 po prawej stronie. Aby pokazano lewy prostu zmienić

navigationItem.leftBarButtonItem = [barButtonItem1, barButtonItem2]

Powiązane problemy