好的,我知道如何通过以下代码从xib加载自定义单元格:
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustpmCellView" owner:self options:nil];
cell = (CustomCell *)[nib objectAtIndex:0];
但有人可以解释第一行的作用吗?
我每次都觉得非常愚蠢,不知道它是如何运作的。
答案 0 :(得分:0)
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustpmCellView" owner:self options:nil];
loadNibNamed
返回xib下的所有视图。所以我们把它放在数组中。在这里说, CustpmCellView 下的所有视图都将被提取并保存在数组 nib 中。
cell = (CustomCell *)[nib objectAtIndex:0];
我们从数组中获得第一个视图,因为这是我们想要的视图,然后我们正在转换并分配给单元格对象。
我们需要为UITableView
中的每个单元格分配新视图,因此为了达到此目的,每次需要新单元格时,我们都会使用上面的代码段。
修改强>
[NSBundle mainBundle]
,在What the meaning of [NSBundle mainBundle] in iPhone?
答案 1 :(得分:0)
loadNibNamed:owner:options:
取消归档接收器捆绑中的nib文件的内容。
- (NSArray *)loadNibNamed:(NSString *)name owner:(id)owner options:(NSDictionary *)options
<强>参数强>
名称 nib文件的名称,不需要包含.nib扩展名。
所有者
要指定为nib的File的Owner对象的对象。
选项
包含打开nib文件时要使用的选项的字典。有关此词典的可用键列表,请参阅“Nib文件加载选项”。
返回值
包含nib文件中顶级对象的数组。该数组不包含对文件所有者或任何代理对象的引用;它仅包含在取消归档nib文件时实例化的那些对象。您应该手动保留返回的数组或其包含的对象,以防止nib文件对象过早释放。