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重量轻。所以我想说你是对的,但不同是不明显的。零记忆差异。您仍然有一个单元格和一个标签。您可以重用您的解决方案,例如通过在标签上设置自定义标记。