2016-06-24 7 views
1

Я не могу понять, как добавить изображение в NSObject, а затем отобразить его в viewController. У меня есть NSObject с кучей строк, которые показаны на этикетках viewController и хотели бы добавить изображение в UIImageView, которое я добавил через storyboard. Как я могу это сделать? Я действительно запутался в том, как использовать UIImage и UImageView, я добавил изображения к своему assets.Отображение изображения из NSObject

Вот мой «тестирование» код - это не работает:

@IBOutlet weak var Label1: UILabel! 
@IBOutlet weak var Label2: UILabel! 
@IBOutlet weak var image: UIImageView! 

class myobject: NSObject { 
     var String1 : String 
     var String2 : String 
     var uiimage : UIImage 

     init(String1 : String, String2 : String, uiimage : UIImage 
      ) { 
      self.String1 = String1 
      self.String2 = String2 
      self.uiimage = uiimage 
     } 
    } 
let array = [ 
     array(String1: "test1", String2: "test2", uiimage: UIImage(named:"Buddha")! 
     ), 

    ] 

    let range: UInt32 = UInt32(array.count) 
    let randomNumber = Int(arc4random_uniform(range)) 
    let choosen = array[randomNumber] 
    let String1c = choosen.String1 
    let String2c = choosen.String2 
    let imageString = array.uiimage 

    self.Label1.text = String1c 
    self.Label2.text = String2c 

    let imageView = UIImageView(image: imageString!) 
    self.image.image = imageView 

Спасибо, я действительно ценю помощь :)

+0

Вы создаете 'UIImageView', но не добавляя его к виду иерархии вид контроллеров. Вам нужно что-то вроде 'view.addSubview (imageView)' (это должно быть в контроллере представления). Даже тогда вы не можете получить макет, который вы ожидаете –

+0

Где находится код в нижней части вашей проводки. Первоначально я думал, что это было в VC 'viewDidLoad', но вы используете' self' таким образом, что, похоже, вы все еще находитесь в 'mybobject' –

+0

. Кстати, вы сделаете свою жизнь намного легче, если вы примете стандартную соглашения о присвоении имен в ваших кодовых классах имеют верхний регистр, переменные нижнего регистра - 'myobject' должны быть' MyObject', 'String1' должен быть' string1'. Не делать этого делает код более трудным для чтения и уменьшает вероятность того, что люди приложит все усилия, чтобы помочь –

ответ

2

Я не понимаю, вам ясно. Если вы хотите добавить UIImage (изображение) в UIImageView (imageView), просто сделайте это «imageView.image = image». Вот ваш тестовый код, который меня изменил.

import UIKit 

class MyObject: NSObject { 
    var string1: String 
    var string2: String 
    var image: UIImage 

    init(string1 : String, string2 : String, image: UIImage 
     ) { 
     self.string1 = string1 
     self.string2 = string2 
     self.image = image 
    } 
} 

class ViewController: UIViewController { 

    @IBOutlet weak var label1: UILabel! 
    @IBOutlet weak var label2: UILabel! 
    @IBOutlet weak var imageView: UIImageView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 

     let myObject = MyObject(string1: "test1", string2: "test2", image: UIImage(named:"Buddha")!); 
     let array = [myObject] 

     let range: UInt32 = UInt32(array.count) 
     let randomNumber = Int(arc4random_uniform(range)) 
     let choosen = array[randomNumber] 
     let choosenStr1 = choosen.string1 
     let choosenStr2 = choosen.string2 
     let image = choosen.image 

     label1.text = choosenStr1 
     label2.text = choosenStr2 
     // just do this 
     imageView.image = image; 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 
} 

И я думаю, что вы должны смотреть это UIImageView in apple's document

+0

WOW, спасибо! Он работает отлично. Я очень ценю вашу помощь, отлично провел день и продолжаю работать! – Mate

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