2012-12-17 15 views
5

Wykonałem wcześniej projekt, w którym ustawiłem Uibutton, aby zawierał zarówno tekst, jak i obraz (w konstruktorze interfejsów).iOS - Generator interfejsów: tytuł UIButton znika przy ustawianiu obrazu

Stworzyłem inny projekt i chcę osiągnąć to samo, ale kiedy ustawiam przycisk, aby mieć obraz, tytuł znika (nie ukrywa się za obrazem).

Nie mogę się domyślić, dlaczego tak jest, więc jeśli ktoś mógłby rzucić trochę światła na ten temat, byłbym wdzięczny!

Dzięki.

Odpowiedz

19

Zmień swój przycisk na niestandardowy. włóż obraz, a następnie umieść tekst.

Będziesz musiał umieścić na nim własne tło, ale w tym momencie będziesz mógł użyć ustawień krawędzi do ustawienia zarówno tekstu, jak i obrazu.

Każdy przycisk, który mam z obrazem i tekstem jest ustawiony na niestandardowy i ostatecznie ma również swój własny obraz bg.

Och, jeszcze jedna rzecz, której używam. Jest cornerRadius. Aby wyświetlić widok, domyślnie zaokrąglony efekt, taki jak przyciski, jest domyślny.

saveButton.layer.cornerRadius = roundingNumber.floatValue; 

Dodatkowo powinieneś być w stanie korzystać z borderWidth i bordercolor w połączeniu z cornerRadius uzyskać przycisk, który wygląda bardzo podobnie do oryginalnego przycisku

saveButton.layer.borderRadius = 1.0f; 
saveButton.layer.borderColor = [[UIColor blueColor] CGColor]; 
// These are not the exact values (or maybe they are) but you get the idea. 

nadzieję, że pomaga. Wydaje

Korekta

Po spędzeniu trochę czasu badając że kiedy umieścić obraz w przycisku. tekst jest przesunięty w prawo.

Użyj ustawień krawędzi, aby przywrócić obraz.

pomocą przycisku wybranego Look in "Atrybuty Inspector"> Przycisk> Krawędź> (rozwijane "Title")

equasion mam wymyślić jest

[Edge inset for Title] Left = -(imageWidth * 2) 

To powinno Lewa wyrównać tytuł z obrazem, który umieściłeś.

Niestandardowe pozycjonowanie będzie konieczne, aby wyglądało poprawnie.

To może być wykonane w całości w konstruktorze interfejsu i można korzystać RoundedRect przycisk styl

Oto kilka zdjęć pokazujących zmianę.

Tutaj ustawiam opcję Typ przycisku na "Niestandardowy", aby usunąć ramkę i tło.

Custom was set

Tutaj ustawić górę iw lewo w zestawie brzegu dla "title" (tytuł jest opcją w rozwijanym)

Left and Top was set

EDIT

Najnowszy kod Xcode przeniósł ustawienia rozmiaru do nowej lokalizacji

enter image description here

+0

Myślę, że to jest właściwa odpowiedź. I nie zapomnij użyć setImage: forState i setTitle: forState. – AntonPalich

+0

nie działa dla mnie. – jonypz

+0

Dodano niektóre pomoce wizualne. Nadzieja, która pomaga. –

0

Wygląda na to, że ustawiasz obraz przycisku, ale nie obraz tła, który można odwrócić.

+0

Obawiam się, że to nie problem w tym przypadku. Mogę ustawić obraz jako tło i tekst, ale chcę uzyskać tło, obraz i tekst. –

+0

Och, mam. Polecam po prostu umieszczenie obrazu jako jednej z części. Tak więc, jako tło, umieść tło jako obrazek, ułóż przycisk na górze, a także umieść tekst. – rooster117

3

Po prostu umieść obraz w polu tła. W ten sposób tekst pojawi się przed obrazem.

+0

Spowoduje to również rozciągnięcie obrazu na całą ramkę przycisku. – oarfish

Powiązane problemy