Установить contentMode UIImageView

В Obj-C

imageView.contentMode = UIViewContentModeScaleAspectFill;

установит contentMode.

Почему

imageView.contentMode = UIViewContentModeScaleAspectFill

не работает в Swift?

Ответ 1

Несколько смутно, Swift предает префикс для значений enum ObjC:

imageView.contentMode = .scaleAspectFill

Это связано с тем, что Swift уже знает, какой тип перечисления используется. Кроме того, вы также можете указать перечисление:

imageView.contentMode = UIViewContentMode.scaleAspectFill

Примечание. В версиях Swift перед версией 3 необходимо масштабировать "scaleAspectFill".

Ответ 2

В быстром языке мы можем установить режим содержимого представления UIImage, например

var newImgThumb : UIImageView
newImgThumb = UIImageView(frame:CGRectMake(0, 0, 100, 70))
newImgThumb.contentMode = .ScaleAspectFit 

Ответ 3

TL;DR;

См. ответ кода для Swift 3 внизу.

Примечание. Прокомментируйте, если требуется дополнительная информация.

Пожалуйста, просмотрите более длинный ответ ниже, в котором описано, как использовать решение для установки всех других свойств в вашем файле раскадровки или Xib/Nib.

Нет ничего плохого в других ответах, но я хочу поделиться тем, как значения параметров для объектов могут быть выполнены в Interface Builder. Я знаю, что OP запрашивает код, этот пример просто используется для полноты. Конечно, если кто-то хотел оживить изменения свойств или нуждался в версиях кода, то остальные ответы продолжают применяться.

Внутри Interface Builder

  • Выберите ImageView (или любой другой элемент управления с встроенным imageView)
  • Проверьте базовый тип атрибута, который вы хотите установить (в случае contentMode это UIViewContentMode) * см. NB для того, как...
  • Обратите внимание на тип допустимых значений, которые могут быть присвоены базовому типу (в этом       case contentMode значения соответствуют числу)
  • Перейдите к инспектору атрибутов и просмотрите атрибуты Runtime User Defined Runtime (см. изображение).
  • Добавить пользовательский атрибут типа    Номер и имя свойства, которое вы хотите установить (в этом случае это   будет contentMode)

NB - простой способ изучить базовые типы свойств - это Cmd + щелкнуть по свойству в редакторе исходного кода, затем Cmd + щелкнуть по типу для этого свойства.

Вот простой пример, где я устанавливаю некоторые свойства для UIButton, который включает UIImageView в качестве одного из его подзонов. В этом примере показано, как можно установить свойства на верхнем объекте (UIButton) и субобъекте (UIImageView).

UDA

Если у вас есть выбранное изображение, просто установите атрибут Runtime User Defined для contentMode типа Number и любое другое значение. Это хороший метод, потому что он будет работать как для Objc, так и для Swift.

Что отличает то, что вы можете использовать один и тот же метод для захвата многих других значений статических свойств для всего, что появляется в Interface Builder.

Документированные значения для перечисления UIViewContentMode

BTW - Swift 3 изменяет значения перечисления, начиная с нижнего регистра, поэтому в Swift 3 будет работать следующее:

imageView.contentMode = .scaleAspectFill

Ответ 4

В Swift Language мы можем установить imageView в textField, как показано ниже.

let RightImageView = UIImageView()
RightImageView.image = image

let RightView = UIView()
RightView.addSubview(RightImageView)
RightView.frame = CGRectMake(0, 0, 30,30)

Дайте цвет для просмотра и изображения. Чтобы вы могли проверить свою добавленную позицию изображения в текстовом поле

RightView.backgroundColor = UIColor.redColor()
RightImageView.backgroundColor = UIColor.blueColor()

RightImageView.contentMode = UIViewContentMode.ScaleAspectFill

RightImageView.frame = CGRectMake(0, 0,30,30)

textFieldForCountry.rightView = RightView