Программно установите изображение в UIImageView с помощью XCode 6.1 / Swift
Я пытаюсь установить UIImageView программно в XCode 6.1:
@IBOutlet weak var bgImage: UIImageView!
var image : UIImage = UIImage(named:"afternoon")!
bgImage = UIImageView(image: image)
bgImage.frame = CGRect(x: 0, y: 0, width: 100, height: 200)
view.addSubview(bgImage)
но Xcode говорит "ожидаемое объявление" с bgImage = UIImageView(image: image) изображения "afternoon"это PNG, и я понимаю, что PNG не нуждается в расширении в XCode 6.1.
также пробовал просто bgImage.image = UIImage(named: "afternoon"), но все еще получаете:

обновление
ОК, я поставил код для обновления UIImageView на
8 ответов:
поскольку ваш bgImage назначен и связан как IBOutlet, нет необходимости инициализировать его как UIImageView... вместо этого все, что вам нужно сделать, это установить свойство изображения, как
bgImage.image = UIImage(named: "afternoon"). После запуска этого кода изображение появилось нормально, так как оно уже было назначено с помощью розетки.
однако, если это не розетка, и у вас ее еще не было подключено к объекту UIImageView в файле раскадровки/xib, то вы могли бы так что-то вроде следующий...
class ViewController: UIViewController { var bgImage: UIImageView? override func viewDidLoad() { super.viewDidLoad() var image: UIImage = UIImage(named: "afternoon")! bgImage = UIImageView(image: image) bgImage!.frame = CGRectMake(0,0,100,200) self.view.addSubview(bgImage!) } }
в xcode 8 вы можете непосредственно выбрать изображение из окна выбора (новый)...
вам просто нужно ввести - "изображение", и вы получите поле для предложений затем выберите - "Image Literal" из списка (см. прилагаемое изображение) и
затем нажмите на площади, вы сможете увидеть все изображения(см.
второе прикрепленное изображение), которые находятся в ваших активах изображения... или выберите другое изображение от там.
- Теперь нажмите на квадратную коробку - (вы увидите, что квадратная коробка после выбора выше вариант)
ОК, получил его работу с этим (создание UIImageView программно):
var imageViewObject :UIImageView imageViewObject = UIImageView(frame:CGRectMake(0, 0, 600, 600)) imageViewObject.image = UIImage(named:"afternoon") self.view.addSubview(imageViewObject) self.view.sendSubviewToBack(imageViewObject)
этот код находится в неположенном месте:
var image : UIImage = UIImage(named:"afternoon")! bgImage = UIImageView(image: image) bgImage.frame = CGRect(x: 0, y: 0, width: 100, height: 200) view.addSubview(bgImage)вы должны поместить его внутри функции. Я рекомендую переместить его внутрь
Как насчет этого;
myImageView.image=UIImage(named: "image_1")где image_1 находится в папке assets как image_1. png.
это сработало для меня, так как я использую случай переключателя для отображения слайда изображения.
с синтаксисом swift это сработало для меня:
let leftImageView = UIImageView() leftImageView.image = UIImage(named: "email") let leftView = UIView() leftView.addSubview(leftImageView) leftView.frame = CGRect(x: 0, y: 0, width: 40, height: 40) leftImageView.frame = CGRect(x: 10, y: 10, width: 20, height: 20) userNameTextField.leftViewMode = .always userNameTextField.leftView = leftView
в Swift 4, Если изображение возвращается в ноль.
нажмите на изображение, с правой стороны (утилиты) - > Проверьте целевое членство
Если вы хотите сделать это так, как вы показали в своем вопросе, это способ сделать это inline
class YourClass: UIViewController{ @IBOutlet weak var tableView: UITableView! //other IBOutlets //THIS is how you declare a UIImageView inline let placeholderImage : UIImageView = { let placeholderImage = UIImageView(image: UIImage(named: "nophoto")) placeholderImage.contentMode = .scaleAspectFill return placeholderImage }() var someVariable: String! var someOtherVariable: Int! func someMethod(){ //method code } //and so on }



Comments