2015-07-11 15 views
20

Wciąż się uczysz Swift i nie wiesz Celu-C. Zauważyłem, że aby programowo zmienić tekst przycisku wymaga użycia titleEdgeInsets, ale nie jestem pewien, jak go użyć.Programowa zmiana tekstu Uibutton w Swift

Chciałbym zmienić tekst w przycisku (wypełnienie) na dole i zarówno na lewo, jak i na prawo.

Dzięki za wszelkie odpowiedzi i/lub przykłady!

Odpowiedz

20

Możesz dodać wypełnienie od góry, od lewej, prawej i od dołu, wykonując poniższe linie kodu.

button.titleEdgeInsets.left = 10; // add left padding. 
button.titleEdgeInsets.right = 10; // add right padding. 
button.titleEdgeInsets.top = 10; // add top padding. 
button.titleEdgeInsets.bottom = 10; // add bottom padding. 
63

Nadal obowiązują przy: iOS 11.2/Xcode 9.2/Swift 4.0/OSX 10.13.2


iOS 9.1/Xcode 7.1/Swift 2.1/OSX 10.10.5:

Sposób titleEdgeInsets nie działa dla mnie. Ramka mojego przycisku mocno przytula tekst (nie określiłem rozmiaru klatki), a ramka ma czerwony kolor tła. Po wykonaniu:

myButton.titleEdgeInsets = UIEdgeInsetsMake(10,10,10,10) 

czerwone tło skurczyła się do wewnątrz o 10 pikseli z każdej strony, co oznaczało, że teraz niektóre z tekstem był poza czerwonym tle. Użycie ujemnych wartości nie miało wpływu na oryginalny rozmiar klatki.

udało mi się dostać wyściółkę wokół tekstu, co skutecznie rama większe, wykonując:

myButton.contentEdgeInsets = UIEdgeInsetsMake(5,5,5,5) 
1

dla iOS 9.1/Xcode 7.1/Swift 2.1

@IBOutlet weak var ratingButton: UIButton! 

override func viewDidLoad() { 
    ratingButton.contentEdgeInsets = UIEdgeInsets(top:15,right:10,bottom:15,left:10) 

    super.viewDidLoad() 
} 
22

iOS 10 i Swift 3 Przykład

Testowane i działa na IOS 11 i Swift 4.

refineButton.contentEdgeInsets = UIEdgeInsets(top: 5, left: 0, bottom: 0, right: 0) 
0

Można również zrobić to w serii ujęć:
enter image description here

+0

Pytanie podano „programowo” – aeid

+0

Nie udaję się do najlepszej odpowiedzi. Tylko dla pełności informacji. –