Как исправить устаревшие элементы ImageEdgeInsets в iOS 15.0, когда отступы должны быть разными с каждой стороны?IOS

Программируем под IOS
Ответить
Anonymous
 Как исправить устаревшие элементы ImageEdgeInsets в iOS 15.0, когда отступы должны быть разными с каждой стороны?

Сообщение Anonymous »


Итак, imageEdgeInsets устарел в iOS 15. Сейчас код выглядит так:

класс MyButton: UIButton { инициализация (заголовок: Строка) { super.init(кадр: .ноль) setTitle(заголовок, для: .normal) setTitleColor(.white, для: .normal) фонЦвет = .синий Layer.cornerRadius = 10 setImage(UIImage(systemName: "heart.fill"), для: .normal) // Это устаревшее imageEdgeInsets = UIEdgeInsets (сверху: 0, слева: 0, снизу: 0, справа: 40) конфигурация?.contentInsets = NSDirectionalEdgeInsets (сверху: 8, в начале: 16, внизу: 8, в конце: 16) addTarget(self, action: #selector(buttonTapped), for: .touchUpInside) } требуется инициализация?(кодер aDecoder: NSCoder) { FatalError("init(coder:) не реализован") } @objc func buttonTapped() { print("Кнопка нажата!") } } Я искал решение и нашел его здесь:

imageEdgeInsets устарел в iOS 15.0

Очевидно, вместо этого мы должны использовать configuration?.imagePadding. Поэтому вместо configuration?.contentInsets = NSDirectionalEdgeInsets(верхнее: 8, ведущее: 16, нижнее: 8, завершающее: 16) мы должны использовать configuration?.imagePadding = 0.

Думаю, вы уже заметили проблему: configuration?.imagePadding принимает только один CGFloat, поэтому, если вы хотите иметь разные отступы на разных сторонах, например: code>NSDirectionalEdgeInsets(верхнее: 8, ведущее: 16, нижнее: 8, завершающее: 16) вам не повезло.

Итак, как мне избежать устаревания, сохранив при этом разные отступы для всех сторон?

*** Примечание *** Проблема аналогична titleEdgeInsets

Кроме того, после использования configuration?.imagePadding он, похоже, абсолютно ничего не делает, пока NSDirectionalEdgeInsets(верх: 8, начало: 16, низ: 8, конец: 16) работает как шарм.


Изображение

Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»