我想跟踪我的UIView's
(和UIViews
的子类),在这种情况下,它们的帧。我想在NSDictionary
中用一个相关的框架来表示我的每个子视图。
我实施了类似的东西;
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
UIViewController
属性在相关tag
的生命周期内是否会发生变化?
注意:我忘了告诉我在这种情况下无法使用UIView
的{{1}}属性。
答案 0 :(得分:1)
我所知道的UIView的大多数继承者都会有一个静态哈希值。但是,要注意:这不能保证是真的,因为子类可以覆盖哈希。
相反,最好通过简单的命名方案跟踪您的视图,或者只是使用对象指针来保存引用(使用%p而不是%@来获取对象的指针而不是描述)
暂且不说:请注意,您正在使用控制器视图对象的哈希值来存储子视图的每个矩形。你确定你不是要使用每个子视图的哈希值吗?