Iphone UITableViewCell中单元格的复杂大小调整
我正在编写一个主要基于TableView的通用iOS应用程序(iPhone和iPad)。每个单元格都有多个文本区域,我需要根据内容调整其高度。我定义了故事板中的所有表格和单元格,我真的希望保持这种方式(以图形化的方式处理大小要容易得多,看看会是什么) 问题是我需要很多信息来计算单元格的最终大小(单元格和子视图的情节提要高度、标签宽度、字体大小…)。我以前的代码中只有常量,我可以手工编写值,但是:Iphone UITableViewCell中单元格的复杂大小调整,iphone,ios,uitableview,Iphone,Ios,Uitableview,我正在编写一个主要基于TableView的通用iOS应用程序(iPhone和iPad)。每个单元格都有多个文本区域,我需要根据内容调整其高度。我定义了故事板中的所有表格和单元格,我真的希望保持这种方式(以图形化的方式处理大小要容易得多,看看会是什么) 问题是我需要很多信息来计算单元格的最终大小(单元格和子视图的情节提要高度、标签宽度、字体大小…)。我以前的代码中只有常量,我可以手工编写值,但是: 每次我改变故事板都很痛苦 我的标签可以有不同的宽度(不同类型的电池,iPhone/iPad),我有
- 每次我改变故事板都很痛苦
- 我的标签可以有不同的宽度(不同类型的电池,iPhone/iPad),我有很多这样的标签,所以在这种情况下,需要跟踪的常数实在太多了
- (CGFloat)tableView:(UITableView *)tableView
heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
// get one instance before any size computation
// or the constant won't be there
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
static NSString *CellIdentifier = @"identifier";
[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
});
return [MyCell heightForCellWithData:theData];
}
我觉得我完全错过了一些东西,但我想不出其他的东西。有什么好办法吗
谢谢 首先,我认为你应该使用自定义单元格来做这些事情。现在,如果每次需要更改宽度/高度,只需要该单元格的边界。关于标签和文本字段的宽度/高度,您可以像(self.textview.bounds)一样,然后根据需要设置偏移量。这不是黑客行为,而是根据逻辑进行纯粹的编码,因为每次更改设备时,它都会相应地接受边界,因此无需记住任何内容。
希望这能奏效:)这是最好的方法,因为你已经说明了原因。
- (CGFloat)tableView:(UITableView *)tableView
heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
// get one instance before any size computation
// or the constant won't be there
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
static NSString *CellIdentifier = @"identifier";
[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
});
return [MyCell heightForCellWithData:theData];
}