2017-04-08 15 views
0

解決できない問題が出てきました。ボタンの画像を設定する

私はstructを持っており、各コレクションビューのボタンの画像を変更したいと考えています。私のテキスト/イメージは、計画に従って動作します。しかし、画像ボタンを変更しようとすると、私は苦労しています。誰かが私を助けてくれますか?

class CollectionViewContent{ 

    var caption = "" 
    var mainImage: UIImage! 
    var userProfileImage : UIButton 


    init(caption: String, mainImage: UIImage!, userProfileImage : UIButton!) 
    { 
     self.description = description 
     self.mainImage = featuredImage 
     self.userProfileImage = postedUserProfileImage 
    } 


    static func showPosts() -> [Posts] 
    { 
     return [ 
      Posts(description: "Sweet", mainImage: UIImage(named: "Image 1"), postedUserProfileImage:!), 
        Posts(description: "Awesome", mainImage: UIImage(named: "Image 2")!), 
        Posts(description: "WOW!", mainImage: UIImage(named: "Image 3")! 

       ) 
     ] 
    } 


} 

これは私のcollectionViewCellクラス

class colViewContetCollectionViewCell: UICollectionViewCell { 


    var posts: Posts! { 
     didSet { 
      updateUI() 

     } 
    } 
    @IBOutlet weak var featuredImage: UIImageView! 
    @IBOutlet weak var postCaptionLabel: UILabel! 
    @IBOutlet weak var postedUserProfileImage: UIButton! 



    func updateUI() { 
     postCaptionLabel?.text! = posts.title 
     featuredImage?.image! = posts.featuredImage 
     postedUserProfileImage = posts.postedUserProfileImage 
    } 

    override func layoutSubviews() { 
     super.layoutSubviews() 

     self.layer.cornerRadius = 10.0 
     self.clipsToBounds = true 
    } 

} 

である私は、このコード行は、私はあまりにもわからない、途中で間違っていると思います。

postedUserProfileImage = posts.postedUserProfileImage 

答えて

1

の代わりに:

postedUserProfileImage = posts.postedUserProfileImage 

あなたが行う必要があります。

postedUserProfileImage.setImage(posts.postedUserProfileImage.image(for: UIControlState.normal), for: UIControlState.normal) 

postedUserProfileImageUIButtonあるので、あなたはそれがコントロール特定のコントロールのための画像です設定するsetImageメソッドを使用する必要があります状態。他の制御状態に画像が設定されていない場合は、通常状態の画像も他の制御状態に使用されます。

posts.postedUserProfileImageUIButtonです(下のコメントに記載されています)ので、ボタンの画像をimage(for:)メソッドで取得する必要があります。

+0

わかりました。どのようにイメージを設定できますか?迅速な返信ありがとうございます:) – TheNewbie

+0

上記のコードを参照してください:)それはイメージを設定する方法を説明します。あなたが「イメージを設定する」と言ったときに他に何かを意味するのでないか? – Fahim

+0

私はコード行を追加しました。「UIButton型の値を期待される引数型「UImage?」に変換できません。私は基本的に1つのボタンを持っていたいと思っていますが、各コレクションビューでボタンの画像は選択した画像に変更されます。 :) – TheNewbie

関連する問題