2016-06-24 4 views
1

NSObjectに画像を追加する方法を頭に入れてからviewControllerに表示することはできません。私はviewControllerのラベルに表示されているstoryboardで追加したUIImageViewの画像を追加したいと思っている文字列の束とNSObjectを持っています。これどうやってするの?私は本当に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)'のようなものが必要です(これはView Controller内になければなりません)。それでもあなたが期待しているレイアウトを得ることはできません –

+0

あなたの投稿の下にあるコードはどこで実行されていますか?私はもともとそれがVCの 'viewDidLoad'にあると思っていましたが、あなたは' mybobject'の中にいることを暗示しているように 'self'を使っています –

+0

ちなみに、標準を採用すれば、あなたのコードの命名規則 - クラスは大文字で、小文字の変数 - 'myobject'は' MyObject'、 'String1'は' string1'でなければなりません。これを行わないと、コードを読みにくくして、人々が手伝ってくれる機会を少なくします –

答えて

2

私ははっきりとあなたを理解していません。 UIImageView(imageView)にUIImage(image)を追加したい場合は、この "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