Выравнивание UIButton

В iOS 15 всё просто:

var config = UIButton.Configuration.filled()
config.contentInsets = .init(top: 5, leading: 10, bottom: 5, trailing: 10)

Но до iOS всё сложнее, так как UIKit не учитывает сдвиги при расчёте размеров кнопки:

let hInset = 10
button.imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
button.titleEdgeInsets = UIEdgeInsets(top: 0, left: hInset, bottom: 0, right: -hInset)
button.contentEdgeInsets = UIEdgeInsets(top: 5, left: 0, bottom: 5, right: 2 * hInset)

Таким образом один отступ скомпенсирует другой и кнопка получится правильного размера.

Источник вдохновения https://stackoverflow.com/a/49789889/602249


Опубликовано

в

от

Метки: