唯一标识两个不同的视图

Posted

技术标签:

【中文标题】唯一标识两个不同的视图【英文标题】:Uniquely identify two different views 【发布时间】:2014-02-17 10:39:06 【问题描述】:

我在主视图中有两个按钮/视图,它们具有相同的名称、相同的标签和在按下任何按钮时调用的相同事件。那么,如何区分按下的是哪个按钮呢?

请不要建议更改按钮的名称或标签,因为我的应用程序太大,因此在整个应用程序中更改名称或标签是一项繁琐的工作。

还有其他方法可以区分两个按钮/视图吗?

【问题讨论】:

我已经回答了这个问题的相同答案,也只是在底部添加了一行,看看:-***.com/questions/20740460/… 【参考方案1】:

这样定义您的自定义属性

#define kCustomProperty @"CustomProperty" 

将您的对象与该自定义属性相关联,如下所示

objc_setAssociatedObject(myObj,kCustomProperty , myData, OBJC_ASSOCIATION_RETAIN_NONATOMIC);

使用相同的属性和对象获取数据,如下所示

NSObject *aObj = objc_getAssociatedObject(myObj, kCustomProperty);

如果您不想使用标签或更改视图名称,则可以通过编码创建一种自定义属性 .

【讨论】:

【参考方案2】:

我不太明白您想要做什么,看来您应该考虑更改您的设计。话虽如此,您可以根据许多参数来区分两个按钮\视图:位置、大小、颜色、标题...这实际上取决于您如何创建和设置它们以及它们之间的区别。

【讨论】:

【参考方案3】:

例如,您可以通过它们在超级视图中的位置来区分它们。如果一个在另一个的上方或右侧。

【讨论】:

以上是关于唯一标识两个不同的视图的主要内容,如果未能解决你的问题,请参考以下文章

核心数据获取唯一属性

如何获取Android唯一标识

Android 设备唯一标识

GUID (全局唯一标识符)

iOS开发:设备唯一标识与全局变量

唯一标识名称和大小相同但内容不同的文件