我有一个滚动视图,其中包含大约40-50个不同类型的对象。对象的类型是根据对象的位置定义的(例如,如果它是滚动视图中的第5个对象->它的Object1,如果它是滚动视图中的第11个对象->它的Object2类型等)。对于for,我正在验证数组的每个元素,然后将它们放入滚动视图,使用以下方法:
for (int i = 0; i < [myArray count]; i++){
if (i < 10){
NSArray *xib = [[NSBundle mainBundle] loadNibNamed:@"Class1" owner:nil options:nil];
for (NSObject *obj in xib){
if ([obj isKindOfClass:[Class1 class]]){
classObject = (Class1 *)obj;
break;
}
}
} else if (i > 10 && i < 20){
NSArray *xib = [[NSBundle mainBundle] loadNibNamed:@"Class2" owner:nil options:nil];
for (NSObject *obj in xib){
if ([obj isKindOfClass:[Class2 class]]){
classObject = (Class2 *)obj;
break;
}
}
}
[scrollview addSubview:classObject];
}
我的问题是,它加载非常慢。我怎么做才能快一点呢?
如果你是为IOS4+编程,你可以使用UINib类代替。它将加载一个缓存对象,并在每次需要时创建一个副本。