Почему пользовательский образ UIButton не изменяется в Интерфейсном Разработчике?

Почему пользовательское изображение UIButton не изменяется с помощью кнопки?

Я установил режим просмотра наScale to Fill в Интерфейсном Разработчике, но в отличие от изображения UIImageView, он не учитывает этот параметр.

Я смотрю не в том месте или это невозможно?

 iwasrobbed23 мая 2010 г., 01:58
это не обязательно верно ... если у вас есть 80x80-пиксельное изображение с кнопкой 60x60 пикселей, оно будет масштабировать кнопку, чтобы соответствовать размеру изображения, тогда как многие люди хотят наоборот (масштабировать изображение, чтобы соответствовать меньшему размеру кнопки) .. см. мой ответ на этот пост для правильного кода, чтобы сделать это: / Stackoverflow.com вопросы / 2658738 / ...
 an010 дек. 2009 г., 08:26
Я обнаружил, что, хотя он не масштабирует изображение в IB, он масштабирует изображение во время выполнения.

Ответы на вопрос(9)

self.imageButton.imageView?.clipsToBounds = true
self.imageButton.imageView?.contentMode = UIViewContentMode.ScaleAspectFit

Это позволит масштабировать изображение, чтобы оно соответствовало аспекту в imageView.

что это старое, но я думаю, что правильный ответ заключается в том, что вы должны установить режим содержимого для «скрытого» UIImageView, который находится внутри UIButton:

button.imageView.contentMode = UIViewContentModeScaleAspectFill;

Это изменит режим содержимого для представлений изображений для изображений, установленных с помощью:

[button setImage:yourAwesomeImage forState:UIControlStateNormal]; 
//Or any other state
 Orion Edwards16 сент. 2014 г., 12:36
не работает для меня :-( Мои изображения все еще не растянуты, чтобы заполнить ширину и высоту кнопки
 Martin Berger06 апр. 2015 г., 18:43
Не работает на iOS8. Попробовал установить его до и после добавления изображения в кнопку.self.button1.imageView.contentMode = UIViewContentModeScaleAspectFill; Пробовал scaleAscpetFill и scaleToFill, нет. Решение Cao Huu Loc действительно работает.

uilder значение true.

Надеюсь, это поможет

 willc230 июн. 2009 г., 13:42
Алас, это не так. Спасибо за попытку помочь.
Решение Вопроса

Делает масштаб

 Adam15 июн. 2018 г., 11:19
Это спасло мне жизнь (хотя бы пару часов)
 Chris18 нояб. 2011 г., 09:59
Если вы не хотите использовать фоновое изображение (например, если вы хотите использовать разные изображения для разных состояний), вам нужно установить свойство выравнивания. Видеть: / Stackoverflow.com вопросы / 1957317 / ...
 willc230 июн. 2009 г., 13:40
Если я поставлю изображение на задний план, я получу правильное поведение, поэтому ты решил, спасибо.
 user10200813 июн. 2012 г., 20:33
Что, если вы хотите, чтобы он подходил по размеру? тогда фоновое изображение, которое масштабируется для заполнения, не будет подходящим

Попробуй это

[button setImage:image forState:UIControlStateNormal];
button.contentVerticalAlignment = UIControlContentVerticalAlignmentFill;
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentFill;

В Свифте:

button.contentVerticalAlignment = .fill
button.contentHorizontalAlignment = .fill
 phaibin28 янв. 2015 г., 11:27
Это сработало !!!!
 Lena Bru09 февр. 2015 г., 13:59
это также работает в конструкторе интерфейсов;)
 xaphod15 июл. 2017 г., 19:53
Работал для меня - XCode 8, Swift 3, UIButton, созданный раскадровкой, векторное / PDF изображение как изображение кнопки
 hyd0012 июн. 2017 г., 08:50
Ты спас мой день! Браво .. Также убедитесь, что тип кнопкиcustom

кнопки

 Ahmad Labeeb16 янв. 2018 г., 10:30
ты принц .....

и через меню макета установите его обратно. Тогда вы сможете правильно масштабировать свое изображение.

Из дизайна Раскройте свой xib ИЛИ раскадровку. Кнопка выбора Внутри Инспектор атрибутов (Справа)> В "Control" раздел> выберите последний 4-й вариант для горизонтального и вертикального.

[Для точки № 3: изменить горизонтальное и вертикальное выравнивание на UIControlContentHor HorizontalAlignmentFill и UIControlContentVericalAlignmentFill]

Из кода

button.contentHor horizontalAlignment = UIControlContentHor horizontalAlignmentFill; button.contentVerticalAlignment = UIControlContentVerticalAlignmentFill;

 Joe C26 окт. 2015 г., 17:53
Забавно, в средстве просмотра XIB оно не выглядит масштабированным. Фактически, она увеличивает размер кнопки, но затем во время выполнения масштабируется до нужного размера.

Интерфейс Строитель

Чтобы получить изображения в UIB-кнопках для масштабирования так же, как UIViews в Интерфейсном Разработчике, выполните следующие действия:

Выберите свой UIButton и из Инспектор личности добавить следующее в User Определенные атрибуты времени выполнения:

imageView.contentMode Number 1

Где число - это номер перечисления contentMode, например:

0 = Scale to fill 
1 = Aspect Fit 
2 = Aspect Fill
etc..

Тогда открой Атрибуты редактор для вашего UIButton и под Control установить Alignment Заполнить (последняя кнопка справа) для горизонтального и вертикального.

SWIFT 3

Обратите внимание, что вы также можете сделать это в коде с помощью следующего:

button.imageView?.contentMode = .scaleAspectFit
button.contentVerticalAlignment = .fill
button.contentHorizontalAlignment = .fill
 rmvz315 февр. 2018 г., 15:57
Идеальный ответ! Благодарность
 Edouard Barbier05 нояб. 2018 г., 09:39
Это сработало для меня

Ваш ответ на вопрос