Я хотел бы использовать NSDirectionalEdgeInsets
до UIButton
s contentEdgeInsets
и titleEdgeInsets
.Возможно ли это?
Фон
В целях локализации может потребоваться приложение iOS для адаптации к языкам слева направо и справа налево при настройке вставок компонента.
Apple представила NSDirectionalEdgeInsets
с iOS11, к сожалению, это было применено только к нескольким свойствам, таким как directionalLayoutMargins
, устарел UIEdgeInsets
, чтоиспользуется для layoutMargins
.
NSDirectionalEdgeInsets
с указанием направления макета интерфейса с использованием ведущих и конечных модификаторов вместо влево и вправо , которое используется его аналогом UIEdgeInsets
.
Текущее неправильное решение
Использование следующего кода для каждой кнопки / представления с каждым измененным свойством UIEdgeInsets
довольно громоздко и подвержено ошибкам при внесении изменений:
let isRTL: UIUserInterfaceLayoutDirection = // logic to determine language direction
if isRTL == .leftToRight {
nextButton.contentEdgeInsets = UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 0)
} else {
nextButton.contentEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 10)
}