2016-06-24 2 views
1

이미지를 NSObject에 추가하고 viewController에 이미지를 표시하는 방법에 대해 머리 숙여 올 수 없습니다. 나는 viewController의 레이블에 표시되는 문자열 묶음이 NSObject이고 storyboard을 통해 추가 한 UIImageView에 이미지를 추가하고 싶습니다. 어떻게해야합니까? 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'에있는 줄 알았지 만'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