Swift 中的 Android setTag 等效项
Posted
技术标签:
【中文标题】Swift 中的 Android setTag 等效项【英文标题】:Android setTag equivalent in Swift 【发布时间】:2020-02-27 09:35:00 【问题描述】:我的意思是 View 类中的方法,它允许像这样将标签放在该类的对象上:
view.setTag(1)
在 Swift 中哪个是等价的?
【问题讨论】:
【参考方案1】:您可以通过这种方式为视图设置标签。
view.tag = 1
【讨论】:
【参考方案2】:我可能迟到了,但@Muhammad Afzal 给出的实际答案并不完全等同于android 中的.setTag()
。
Swift .tag
只允许使用Int
值,而Android .setTag()
允许使用任何Object
值。
要获得等效功能,应该创建一个简单的自定义类,如下所示:
public class UITagView:UIView
var Tag:Any?
init()
super.init(frame: .zero)
required init?(coder: NSCoder)
fatalError("init(coder:) has not been implemented")
func setTag(_ tag:Any)
self.Tag = tag
func getTag()->Any
return self.Tag!
如果view
是该类的一个实例,那么view.setTag()
在Android 和Swift 中将是相同的。
但是,如果您需要的标签始终是整数,则使用view.tag
会更容易,正如@Muhammad Afzal 所说。
注意:与 Android 中一样,使用.getTag()
方法恢复对象时,应将其解析为所属的类(view.getTag() as! SomeClass
)。
【讨论】:
以上是关于Swift 中的 Android setTag 等效项的主要内容,如果未能解决你的问题,请参考以下文章