1、获得Filters和Attributes的列表:
使用filterNamesInCategory:和filterNameInCategories:方法来发现哪些filters可用。
你可以传递nil参数给filterNameInCategories:来获得所有categories的所有filters。

比如:

1     NSArray *fiterArray = [NSArray array];
2     fiterArray = [CIFilter filterNamesInCategories:nil];
3     NSLog(@"%d",fiterArray.count);
4     
5     for (NSString *fiter in fiterArray) {
6         NSLog(@"%@",fiter);
7     }

效果类型的category常量:

 

下面列出了使用目标类型的category常量:

下面列出了filter 源的category常量:

 

获得fiter name 以后,你就可以创建一个CIFiter 对象,然后通过attributes方法获得 fiter 属性:

 

 1     CIFilter *myFilter = [CIFilter filterWithName:@"CIAccordionFoldTransition"];
 2     NSDictionary *myFilterAttributes = [myFilter attributes];
 3     
 4     for(id key in myFilterAttributes)
 5     {
 6         id obj = [myFilterAttributes objectForKey:key];
 7         NSLog(@"key:%@,value:%@",key,obj);
 8     
 9     }
10