Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 除了enumerate和check之外,还有其他方法按类筛选子视图吗?_Objective C_Uiview_Subview - Fatal编程技术网

Objective c 除了enumerate和check之外,还有其他方法按类筛选子视图吗?

Objective c 除了enumerate和check之外,还有其他方法按类筛选子视图吗?,objective-c,uiview,subview,Objective C,Uiview,Subview,首先,过滤意味着在子视图中查找所有(targetClass)视图 通常,如果我们想按类过滤子视图,我们可能会: // Create an array to hold them NSMutableArray *filteredViews = [NSMutableArray new]; // enumerate and check for (UIView *view in parentView.subviews) { if ([view isMemberOfClass:[targetCla

首先,过滤意味着在子视图中查找所有(targetClass)视图

通常,如果我们想按类过滤子视图,我们可能会:

// Create an array to hold them
NSMutableArray *filteredViews = [NSMutableArray new];

// enumerate and check
for (UIView *view in parentView.subviews) {
    if ([view isMemberOfClass:[targetClass class]) {
        [filteredViews addObject:view];
    }
}   
这是正确的方法吗


Cocoa Touch是否有专门的方法来筛选子视图?

您可以使用NSPredicate定义规则来选择所需的项目。注意,我使用的是
isKindOfClass
,而不是
isMemberOfClass
,因为前者考虑了类的层次结构,并且能够识别您要查找的类的子类

NSPredicate* predicate = [NSPredicate predicateWithFormat:@"self isKindOfClass: %@", [targetClass class]];
NSArray* filteredViews= [parentView.subviews filteredArrayUsingPredicate:predicate];

您可以使用NSPredicate定义规则来选择所需的项目。注意,我使用的是
isKindOfClass
,而不是
isMemberOfClass
,因为前者考虑了类的层次结构,并且能够识别您要查找的类的子类

NSPredicate* predicate = [NSPredicate predicateWithFormat:@"self isKindOfClass: %@", [targetClass class]];
NSArray* filteredViews= [parentView.subviews filteredArrayUsingPredicate:predicate];

不确定筛选子视图是什么意思。你能解释一下你想做什么吗?你为什么要这么做?在开发者文档中,苹果建议要么存储指向需要修改的视图的指针(例如使用属性),要么通过标签识别视图。在大多数情况下,这将是一个更清洁的解决方案。→ 不确定筛选子视图是什么意思。你能解释一下你想做什么吗?你为什么要这么做?在开发者文档中,苹果建议要么存储指向需要修改的视图的指针(例如使用属性),要么通过标签识别视图。在大多数情况下,这将是一个更清洁的解决方案。→ 太棒了,正是我想要的!太棒了,正是我想要的!