我想让自定义的uitableviewcellstyle在我的应用中发表评论。我想要uitableviewcell与评论文本,喜欢的数量,作者的姓名,日期等... 你有什么想法吗? 我已经创建了方法,但我不知道如何实现它。 我的代码:
- (UITableViewCell *)getCommentTableCellWithTableView:(UITableView *)tableView commentText:(NSString *)commentText numberOfRows:(NSInteger)numberOfRows numberOfLikes:(NSString *)numberOfLikes date:(NSString *)date writer:(NSString *) writerName {
static NSString *CellIdentifier = @"TitleCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
return cell;
}
答案 0 :(得分:3)
对不起,我找不到一个有明确步骤的教程,但你可以在这个网站上搜索一些相关的帖子或问题。
希望下面的简单代码可以帮到你。
这是一个文档也可以帮助,花点时间看看;)
http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/TableView_iPhone/TableViewCells/TableViewCells.html
新类继承自UITableViewCell,CustomCell.h:
(提示:File
- > New File
- > Objective-C class
- >设置类名称&选择子类UITableViewCell
)
@interface MapsListViewCell : UITableViewCell
{
// Add iVars that you want.
}
// Some custom methods
CustomCell.m:
// ...
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
}
return self;
}
// ...
// Some custom methods
- (void)setAuthorName:(NSString *)name
{
// ...
}
TableViewController.m:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[CategoriesListViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
CategoriesListViewCell * customCell = (CategoriesListViewCell *)cell;
// Set your data:
[customCell setAuthorName:@"God"];
// ...etc.
return cell;
}
答案 1 :(得分:0)
对于我们这些使用较新的(iOS 6及更高版本)UITableView
API来排队的单元格dequeueReusableCellWithIdentifier:forIndexPath
,这实际上保证返回实例化的单元格,因此我们无法执行nil检查和手动呼叫initWithStyle
。因此,最好的解决方案是子类UITableViewCell
并在初始化时手动强制执行该样式。
作为一个例子,如果我们想要一个UITableViewCellStyleSubtitle
样式的单元格,我们将创建一个自定义子类:
@interface ABCSubtitledTableViewCell : UITableViewCell
@end
@implementation ABCSubtitledTableViewCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
return [super initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:reuseIdentifier];
}
@end
然后在我们的viewDidLoad
中,我们会注册相应的班级
[tableView registerClass:[ABCSubtitledTableViewCell class] forCellReuseIdentifier:NSStringFromClass([ABCSubtitledTableViewCell class])];
制作我们的出列方法:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
ABCSubtitledTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([ABCSubtitledTableViewCell class]) forIndexPath:indexPath];
cell.textLabel.numberOfLines = 0;
cell.textLabel.text = @"Hello";
cell.detailTextLabel.text = @"World";
return cell;
}