Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 是否创建带有字符串标记的UIImageView子类?_Ios_Swift - Fatal编程技术网

Ios 是否创建带有字符串标记的UIImageView子类?

Ios 是否创建带有字符串标记的UIImageView子类?,ios,swift,Ios,Swift,我想获得一个功能,当您使用文件设置图像时,UIImageView子类将自动将其保存在var stringTag:String中 如果我只是用这个变量创建子类,那么在设置图像时,我必须手动设置它的标记名: imageView.image ="abc.png" imageView.tagString="abc.png" 有没有一种简单的方法来创建这个子类,这样当我设置图像时,它会自动将其文件名保存为标记var?不幸的是,这是不可能的。因为UIImage不存储有关文件路径或名称的任何信息 实现类似目

我想获得一个功能,当您使用文件设置图像时,
UIImageView
子类将自动将其保存在
var stringTag:String中

如果我只是用这个变量创建子类,那么在设置图像时,我必须手动设置它的标记名:

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

有没有一种简单的方法来创建这个子类,这样当我设置图像时,它会自动将其文件名保存为标记var?

不幸的是,这是不可能的。因为UIImage不存储有关文件路径或名称的任何信息

实现类似目标的一种方法是这样做:

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

没有意义,因为您可以将UIImage分配给imageView而不需要文件名。IE:NSData中的UIImage或下载的UIImage。在这种情况下,它将没有名称。没错,所以类将永远不会自动“知道”吗?我必须手动设置此属性?谢谢,那么当您执行imageView.image=x时会发生什么情况?或者它是我必须设置的东西:imageView.imageName=x?
didSet
会在您为任何属性指定新值时激活。还有
set
didGet
get