Gre*_*tin 89 iphone cocoa-touch interface-builder uitableview ios
我可以使用http://forums.macrumors.com/showthread.php?t=545061中找到的线程中描述的技术设计自定义UITableViewCells并加载它们.但是,使用该方法不再允许您使用reuseIdentifier初始化单元格,这意味着您必须在每次调用时创建每个单元格的全新实例.有没有人想出一个很好的方法来缓存特定的单元格类型以便重用,但仍然可以在Interface Builder中设计它们?
Tim*_*ing 119
实际上,由于您在Interface Builder中构建单元,只需在那里设置重用标识符:
或者,如果您正在运行Xcode 4,请检查"属性"检查器选项卡:

(编辑:XC由XCode生成后,它包含一个空的UIView,但是我们需要一个UITableViewCell;所以你必须手动删除UIView并插入一个Table View Cell.当然,IB不会显示任何UITableViewCell参数UIView的.)
Lou*_*arg 74
只需使用适当的方法签名实现一个方法:
- (NSString *) reuseIdentifier {
return @"myIdentifier";
}
Run Code Online (Sandbox Code Playgroud)
小智 66
现在,在iOS 5中有一个适当的UITableView方法:
- (void)registerNib:(UINib *)nib forCellReuseIdentifier:(NSString *)identifier
Run Code Online (Sandbox Code Playgroud)
小智 47
我不记得我最初在哪里找到了这段代码,但到目前为止它一直对我有用.
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"CustomTableCell";
static NSString *CellNib = @"CustomTableCellView";
UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CellNib owner:self options:nil];
cell = (UITableViewCell *)[nib objectAtIndex:0];
}
// perform additional custom work...
return cell;
}
Run Code Online (Sandbox Code Playgroud)
Interface Builder设置示例...
alt text http://i32.tinypic.com/a9mnap.jpg
Ken*_*ner 12
看看我给这个问题的答案:
是否可以在Interface Builder中设计NSCell子类?
不仅可以在IB中设计UITableViewCell,这是可取的,因为否则所有手动布线和多个元素的放置都非常繁琐.只要您在可能的情况下小心使所有元素都不透明,性能就可以了.对于UITableViewCell的属性,在IB中设置了reuseID,然后在尝试出列时在代码中使用匹配的重用ID.
去年WWDC的一些主持人也听说你不应该在IB中制作桌面视图单元格,但这是一堆铺位.
从iOS大约4.0开始,iOS文档中有一些特定的说明可以让这项工作超级快速:
向下滚动到它谈论子类化UITableViewCell的地方.
这是另一种选择:
NSString * cellId = @"reuseCell";
//...
NSArray * nibObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomTableCell" owner:nil options:nil];
for (id obj in nibObjects)
{
if ([obj isKindOfClass:[CustomTableCell class]])
{
cell = obj;
[cell setValue:cellId forKey:@"reuseIdentifier"];
break;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
89277 次 |
| 最近记录: |