2017-01-12 2 views
0

Я создал UIButton, используя изображение в качестве кнопки. Однако я не могу изменить размер изображения/кнопки. Используемый мной код:UIButton Frame без изменения размера с изображением

let leftArmImage = UIImage(named: "LeftArm") as UIImage? 
let leftArmButton = UIButton(type: UIButtonType.custom) as UIButton 
leftArmButton.frame = CGRect(x:self.view.center.x + 200,y:self.view.center.y,width:500,height:500) 
leftArmButton.setImage(leftArmImage, for: .normal) 
leftArmButton.imageView?.frame = leftArmButton.frame 
leftArmButton.addTarget(self, action: #selector(PhysicalExam.bodyPartSingleTapped(_:)), for:.touchUpInside) 
self.view.addSubview(leftArmButton) 

Как изменить размер изображения?

+0

Вы уверены, что ваша кнопка не изменяет размер, но изображение просто не покрывает эту область? Попробуйте нажать в области, где, по вашему мнению, нет кнопки, вызывает ли это действие? (Предположим, вы приложили действие к кнопке) Изменить: в каком режиме содержимого установлен ваш образ? – Jerland2

+2

Вместо 'leftArmButton.setImage()', попробуйте использовать 'leftArmButton.setBackgroundImage()', чтобы он мог покрывать всю рамку кнопки. –

+0

@ Jerland2 Кнопка изменяет размер, но изображения нет. Правильно запускает действие кнопки. Что касается режима содержимого изображения, я попытался задействовать все три варианта, и ни один из них не заполнил рамку. – DMop

ответ

1

Вместо leftArmButton.setImage() попробуйте использовать leftArmButton.setBackgroundImage(), чтобы он мог покрывать всю рамку кнопок.

+0

Это, похоже, не заполняет рамку кнопки. Я сделал рамку видимой, так что я мог проверить это – DMop

0

Попробуйте

leftArmButton.imageView?.contentMode = .scaleAspectFill 
+0

. Он говорит, что UIContentMode не имеет членского вида aspectFill ' – DMop

+0

жаль, что я не на своем компьютере, но я обновил ответ. Если он не работает, просто введите «.» И дождитесь появления всплывающих опций xcode, чтобы выполнить его автозаполнение с помощью чего-то типа «AspectFill». – Timmy

+0

Нет проблем. Это был вариант, но он не изменял размер изображения – DMop

1

Попробуйте

Программным

button.setImage(image, for: .normal) 
button.contentVerticalAlignment = .fill 
button.contentHorizontalAlignment = .fill 

раскадровки

  1. Откройте раскадровку

  2. Выбрать кнопку внутри инспектора атрибутов (справа) -> В разделе «Управление» -> выбрать четвертый вариант (последний) для горизонтальной и вертикальной выверки.

Смежные вопросы