2016-02-17 4 views
1

У меня есть две кнопки, позволяет называть их buttonA и buttonB.Изменить текстовое вертикальное выравнивание, нажав на другую кнопку

Что я хочу достичь, когда я нажимаю кнопку B, я хочу, чтобы кнопки buttonA и buttonB изменяли вертикальное выравнивание текста внутри них.

Я попытался следующие:

func changeAllign() { 
    buttonA.contentVerticalAlignment = UIControlContentVerticalAlignment.Top 
    buttonB.contentVerticalAlignment = UIControlContentVerticalAlignment.Bottom 
} 

Это не работает по какой-то причине. Когда я нажимаю кнопкуB, он выравнивает свой текст до нижней, а buttonA останется неизменным. Затем, если я удерживаю/или нажимаю кнопку А, текст выравнивается вверх.

Можно ли это сделать, чтобы оно менялось без меня, чтобы сначала щелкнуть по нему?

ответ

0

Вы должны явно сообщить кнопки, чтобы повторно макет их подвидов после изменения выравнивания содержимого:

func changeAllign() { 
    buttonA.contentVerticalAlignment = UIControlContentVerticalAlignment.Top 
    buttonA.setNeedsLayout() 
    buttonB.contentVerticalAlignment = UIControlContentVerticalAlignment.Bottom 
    buttonB.setNeedsLayout() 
} 
+0

К сожалению, это не решает проблему, до сих пор не выравнивает содержимое до после того, как я нажал buttonA – NameWasUsed

+0

Eh. Извините: возможно, попробуйте с 'setNeedsLayout'. –

+0

Отлично! вот и все! Спасибо друг! – NameWasUsed

Смежные вопросы