objective-c - 使用类别将数据添加到 UIView

标签 objective-c ios uiview subclass objective-c-category

我想扩展 iOS UIView 类,以便可以在 UIView 实例中存储一些我自己的数据和状态。我是 iOS 新手。我知道我无法将实例变量添加到类别,所以大概我无法将新状态添加到我的 UIViews。

因此,我正在考虑创建一个 NSArray,其中每个 UIView 都有一个唯一的标记,然后将其用作 NSArray 的索引,并且 NSArray 中的每个项目都保存有关该特定 UIView 的附加状态信息。这里的缺点是标签和 NSArray 的管理。如果我可以通过类别直接向任何 UIView 添加状态,那就简单多了。

任何人都可以建议我向 UIView 添加一些实例变量和状态的最佳方法吗?我正在使用大量 UIView 子类,因此并不想开始子类化 UIView。

谢谢。

最佳答案

Associative references会让你做你想做的事,尽管我不确定你为什么不想子类化(你已经说过你有很多子类 - 也许更好的子类化策略会是更好的解决方案?)。

关于objective-c - 使用类别将数据添加到 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10877844/

相关文章:

ios - 如何将 Parse SDK 与 Xcode 7 和 iOS 9 结合使用

ios - Realm :为什么在更新对象时,它会丢失其子引用?

objective-c - Appirater 的 App Store ID 不同于 plist 的 ID,而且显然是随机的

ios - 如何在 iOS 9 的一个 View Controller 中处理两个分段 Controller ?

objective-c - 在启用键盘返回键之前如何在 UITextField 中要求最小文本长度

objective-c - Objective-c 中的灯光动画

c++ - 如何在c++ opengles ios中取消绑定(bind)glBindFramebuffer

iPhone - 与多个 UIGestureRecognizer 冲突

ios - 如何使用 NSSetUncaughtExceptionHandler 在 Swift 中的 UIView 上显示异常消息

ios - UIBezierPath 未在 iPhone 6/6+ 中的 UIViews 的正确边框上绘制