2017-07-14 9 views
2

私はあなたがファイルを使用して画像を設定する機能を取得したいと思い、UIImageViewサブクラスが自動的にvar stringTag:String!Stringタグを使用してUIImageViewサブクラスを作成しますか?私は単にこのVARとのサブクラスを作成した場合

でこれを保存します、私は手動で設定する必要があります

imageView.image ="abc.png" 
imageView.tagString="abc.png" 

ので、このサブクラスを作成するために、私は画像を設定すると、それが自動的にタグVARとしてファイル名です節約する簡単な方法があります:私は画像を設定するときには、タグ名ですか?

+0

あなたはそれがファイル名を持たずにImageViewのにUIImageを割り当てることができるので、意味がありません:あなたが望むものに似た何かを達成するために

一つの方法は、このような何かを行うことです。 IE:UIImage(NSDataまたはUIImageからダウンロード)そのような場合、名前はありません。 – Brandon

+0

そうですね、クラスは自動的に決して「知っている」ことはありませんか?私はこのプロパティを手動で設定する必要がありますか? – Curnelious

答えて

2

残念ながら、それは不可能です。 UIImageはファイルのパスや名前に関する情報を格納しないためです。

class TaggableImageView:UIImageView 
{ 
    var tagString:String? 
    var imageName:String? 
    { 
    didSet 
    { 
     self.image = UIImage(named:imageName) 
     self.tagString = imageName 
    } 
    } 
} 
+0

ありがとう、だからdidSetは、imageView.image = xを実行したときに起こりますか?それとも私が設定しなければならないものですか?imageView.imageName = x? – Curnelious

+1

'didSet'は、新しい値を任意のプロパティに割り当てるたびに有効になります。 'set'、' didGet'、 'get'もあります。 – cloudcal

+0

うわー、それは分かりませんでした。 – Curnelious

関連する問題