自定义动态TableViewCell文本定位

时间:2014-01-27 16:35:13

标签: ios objective-c uitableview

我的动态TableView看起来像this

但是,我想更整洁地定位文字,例如this

这是我目前正在使用的代码:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier =@"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    [cell.textLabel setFont:[UIFont fontWithName:@"HelveticaNeue-Light" size:17.0f]];
    cell.textLabel.text=[[self.responseArray objectAtIndex:indexPath.row]objectForKey:@"name"];
    return cell;
}

我已尝试在TableViewCell中放置一个标签,该标签位于我想要动态文本的位置,但我在代码中调用它是不成功的。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

您应该创建自定义单元格子类。此子类在.h文件中应该有@property,这使您的自定义标签可用。在.m(或XIB)中,您可以将标签创建(或连接)到属性(插座)。

现在,您使用cell.textLabel而不是cell.customTextLabel。只需记住根据CellIdentifier注册自定义单元格类。

您还可以在单​​元格.m(或XIB)中的标签上配置字体和大小,因此您无需在代码中执行此操作。


您还需要更改为:

CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

以便编译器知道cell所在的类(以及它具有的属性)。

答案 1 :(得分:0)

无需创建UITableViewCell的子类。因为,您希望只是更改文字的来源。 我建议将UILabel添加到您的单元格作为子视图。

cell.textLabel.text = @"";
UILabel *textLabel = [[UILabel alloc] initWithFrame: CGRectMake(10,10,300,20)]; 
textLabel.text = @"Text here";
[cell.contentView addSubview:textLabel];

仅2-3行,您无需创建子类。