Ios 自定义动态TableViewCell文本定位

Ios 自定义动态TableViewCell文本定位,ios,objective-c,uitableview,Ios,Objective C,Uitableview,我有一个动态的TableView,看起来像 但是,我想把文本放得更整齐一些,比如 以下是我当前使用的代码: -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier =@"Cell"; UITableViewCell *cell = [tableView dequeue

我有一个动态的
TableView
,看起来像

但是,我想把文本放得更整齐一些,比如

以下是我当前使用的代码:

-(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
中放置一个标签,该标签位于我希望动态文本所在的位置,但我在代码中调用它失败了。如何执行此操作?

您应该创建一个自定义单元格子类。这个子类在.h文件中应该有一个
@属性
,它使您的自定义标签可用。在.m(或XIB)中,创建(或连接)属性(outlet)的标签

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

您还可以在cell.m(或XIB)中配置标签上的字体和大小,这样就不需要在代码中进行配置


您还需要更改为:

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

这样编译器就知道
单元格
是什么类(以及它有什么属性)。

不需要创建
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行,无需创建子类。

谢谢您的回复。我添加了一个标签,并将其命名为类
myLabel
。在
.h
文件中,我放置了
@property(非原子,强)UILabel*myLabel.m
中,我用
myLabel
替换了
textLabel
的每个实例。我哪里出错了?类名应该以大写字母开头。您是否收到编译器警告,说
myLabel未定义
?否,我收到的错误在第6行,并说:
在类型为“UITableViewCell*”的对象上找不到属性“myLabel”
。奇怪的是,错误也出现在第5行,但它消失了。好吧,是的,那真的是同一个错误。请参阅我的编辑(您需要正确设置类),但最好使用子类来完成。在您的情况下,如何有效地重用单元格?@wainofc不如子类那么有效,因为我们不能重用它。但这种方式不需要很多内存。UILabel重量轻。所以我想说你是对的,但不同是不明显的。零记忆差异。您仍然有一个单元格和一个标签。您可以重用您的解决方案,例如通过在标签上设置自定义标记。