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

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

Я устанавливаю его режим просмотра "Масштаб для заполнения в построителе интерфейса", но, в отличие от изображения UIImageView, он не соблюдает эту настройку.

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

Ответ 1

Хотя это может быть не совсем то, что вам нужно - фоновая картинка делает.

Ответ 2

Попробуй это:

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

В Свифте:

button.contentVerticalAlignment = .fill
button.contentHorizontalAlignment = .fill

Ответ 3

Не забудьте установить параметры настройки управления для кнопки

здесь задайте параметры настройки выравнивания для кнопки

Ответ 4

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

button.imageView.contentMode = UIViewContentModeScaleAspectFill;

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

[button setImage:yourAwesomeImage forState:UIControlStateNormal]; 
//Or any other state

Ответ 5

Просто сделайте (из дизайна OR From Code):

От дизайна

  • Откройте xib OR Storyboard.
  • Кнопка выбора
  • Внутри Инспектор атрибутов (справа) > В разделе "Управление" выберите последний 4-й вариант для горизонтального и вертикального. li >

[Для пункта №3: ​​изменение горизонтального и вертикального выравнивания по UIControlContentHorizontalAlignmentFill и UIControlContentVericalAlignmentFill]

Из кода

button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentFill; button.contentVerticalAlignment = UIControlContentVerticalAlignmentFill;

Ответ 6

Конструктор интерфейсов

Чтобы изображения в UIButtons масштабировались так же, как UIViews в интерфейсе Builder, выполните следующие действия:

Выберите свой UIButton и Identity Inspector, добавьте следующее для пользователя Определенные атрибуты времени выполнения:

imageView.contentMode Number 1

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

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

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

SWIFT 3

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

button.imageView?.contentMode = .scaleAspectFit
button.contentVerticalAlignment = .fill
button.contentHorizontalAlignment = .fill

Ответ 7

Попробуйте установить для свойства Clip subviews в Interface Builder значение true.

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

Ответ 8

Лучшим решением, которое я нашел до сих пор в Swift 2.1, является следующее:

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

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

Ответ 9

Просто получите реальный UIimageview и поместите UIbutton поверх него, а в меню макета установите его обратно. Затем вы можете масштабировать изображение правильно.