自定义UITableViewCell

时间:2011-01-20 07:54:16

标签: iphone uitableview

我如何自定义UITableviewCell,因为我想在单个单元格中看到标签,日期和图片。

4 个答案:

答案 0 :(得分:3)

有两种选择(可能更多)。您可以使用本机UITableViewCell属性向单元格添加内容,或创建自定义单元格(我的意思是,将您自己的子视图添加到单元格)。要开始尝试第一个,它很简单优雅,结果将非常好。例如,尝试以下单元格创建方法:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        // notice the Style. The UITableViewCell has a few very good styles that make your cells look very good with little effort
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
    }

    // Configure the cell...
    // In my case I get the data from the elements array that has a bunch on dictionaries
    NSDictionary *d = [elements objectAtIndex:indexPath.row];

    // the textLabel is the main label
    cell.textLabel.text = [d objectForKey:@"title"];

    // the detailTextLabel is the subtitle
    cell.detailTextLabel.text = [d objectForKey:@"date"];

    // Set the image on the cell. In this case I load an image from the bundle
    cell.imageView.image = [UIImage imageNamed:@"fsaint.png"];

    return cell;
}

答案 1 :(得分:2)

您可以使用Interface BuilderCode

自定义UITableViewCell

答案 2 :(得分:1)

看一下这个链接。

在那里,您将找到如何使用Interface Builder创建自定义单元格,并在XCode中为您的应用程序使用它。

http://www.e-string.com/content/custom-uitableviewcells-interface-builder

答案 3 :(得分:0)

我非常喜欢覆盖UITableViewCell类,并在self.contentView中进行自定义绘图。这种技术稍微复杂一点,但它可以带来更好的滚动性能。

例如,假设您覆盖了您的单元格,并在其上有3个属性,如下所示:

@property(nonatomic, retain) UIImage *userPic;
@property(nonatomic, retain) NSString *label;
@property(nonatomic, retain) NSString *date;

然后你可以使用(drawRect :)函数在单元格中绘制它们:

- (void)drawRect:(CGRect)rect {
    [super drawRect:rect];
    [userPic drawInRect: CGRectMake(10, 5, 50, 50)];
    [label drawAtPoint:CGPointMake(70, 5) withFont:[UIFont boldSystemFontOfSize:17]];
    [date drawAtPoint:CGPointMake(70, 30) withFont:[UIFont systemFontOfSize:14]];
  }

有关更多示例,请尝试查看使用此样式的此框架:https://github.com/andrewzimmer906/XCell