我想跟踪我的 UIView's
(以及 UIViews
的子类),在本例中是它们的框架。我想在 NSDictionary
中保留一个指示我的每个 subview 的注释。及其相关框架。
我实现了这样的东西;
NSMutableDictionary *subviewRects = [[NSMutableDictionary alloc] init];
// iterate through all subviews ans save their CGRects
for (UIView *subview in self.holder.subviews) {
NSValue *rectValue = [NSValue valueWithCGRect:subview.frame];
[subviewRects setObject:rectValue forKey:[NSString stringWithFormat:@"%d",subview.hash]];
}
但我不确定这是否是实现这一目标的正确方法,或者更重要的是,将hash
UIView
的属性(property)相关UIViewController
生命周期内的变化?
注意:我忘了告诉你我不能使用 tag
UIView
的属性(property)在这种情况下。
最佳答案
据我所知,大多数 UIView 继承者都会有一个静态哈希值。但是,请注意:这并不能保证是正确的,因为子类可以覆盖哈希。
相反,最好通过简单的命名方案来跟踪 View ,或者简单地使用对象指针来保存引用(使用 %p 而不是 %@ 来获取对象的指针而不是描述) .
顺便说一句:请注意,您正在使用 Controller View 对象的哈希值来存储 subview 的每个矩形。您确定不是要使用每个 subview 的哈希值吗?
关于ios - 识别用于保存信息的 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16838708/