2016-06-24 27 views
1

我無法理解如何將圖像添加到NSObject,然後將其顯示在viewController中。我有一個NSObject帶有一串字符串,這些字符串顯示在viewController的標籤中,並且希望在UIImageView中添加圖像,我通過storyboard添加了該圖像。我怎樣才能做到這一點?我真的很困惑如何使用UIImageUImageView,我已經將圖像添加到我的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

哇,謝謝!它完美的作品。我非常感謝你的幫助,祝你有個美好的一天,並保持良好的工作! – Mate