如果我使用以下内容在子视图集合中添加UIView子类:
-(void)loadOutlet
{
myOutlet *out = [[myOutlet alloc] init];
[self addSubview:out];
[out release];
}
-(void)unloadOutlet
{
myOutlet *out = <<HOW CAN I REFERENCE IT FROM subviews array?>>
[out removeFromSuperView];
}
这是最好的做法吗?
从现在开始,我使用isKindOfClass为每个子视图查找使用循环,但是没有更好的方法吗?
感谢。
答案 0 :(得分:6)
您可以为子视图指定标签,然后使用相同的标签检索它。
-(void)loadOutlet
{
myOutlet *out = [[myOutlet alloc] init];
out.tag = 1; // Or some other value
[self addSubview:out];
[out release];
}
-(void)unloadOutlet
{
myOutlet *out = [self viewWithTag:1];
[out removeFromSuperView];
}
答案 1 :(得分:0)
可替换地:
NSArray *currentSubViews = [self.subviews copy];
// Loop through each subview
for (id subview in currentSubViews) {
// Check the Objective-C class of this object
if ([subview isKindOfClass:[myOutlet class]]) {
// Remove the superview
[subview removeFromSuperView];
}
}
Objective-C的动态特性是一个很好的工具。