iOS Системные значки, не относящиеся к UIImageInsets UIButton - PullRequest
1 голос
/ 24 марта 2020

Я использую iOS системные значки , чтобы у меня был постоянный пользовательский интерфейс на протяжении всего проекта. Одна вещь, которую я заметил при использовании этих значков, заключается в том, что даже если я установлю системный значок в качестве изображения для UIButton, он не будет увеличиваться до размера кнопки, как это делают обычные изображения проекта. Например, если у нас очень большое значение UIButton, скажем, высота и ширина 500, даже если каждое из значений вставки изображения UIButton слева, сверху, снизу и справа для каждого из них установлено в 0 в конструкторе интерфейса системный значок, используемый для изображения кнопки, останется таким же маленьким. enter image description here enter image description here

Фактически, единственный раз, когда значки системы будут соблюдать инструкции построителя интерфейса для вставок изображений, это когда указанные вставки требуют, чтобы изображение становится меньше.

enter image description here

Кто-нибудь знает, как заставить системные значки вести себя подобно обычным проектным изображениям в отношении вставок изображений UIButton s?

Ответы [ 2 ]

1 голос
/ 24 марта 2020

check the marks in the picture Вы можете использовать конструктор интерфейса. В инспекторе атрибутов справа используйте раздел «Управление» следующим образом:

и код, который вы можете использовать в раскадровке также, как вы уже используете.

1 голос
/ 24 марта 2020

Если бы это было UIImageView, когда вы установили contentMode как «Подгонка по размеру», системное изображение само изменило бы размер, чтобы соответствовать высоте и ширине.

enter image description here

Проблема в том, что вы не можете установить UIButton.imageView s contentMode на раскадровке, но вы можете сделать это программно,

override func viewDidLoad() {
    yourButton.imageView?.contentMode = .scaleAspectFit
    yourButton.contentHorizontalAlignment = .fill
    yourButton.contentVerticalAlignment = .fill
}
...