Iphone iOS-动态标签大小未正确返回
我花了几个小时试图解决这个问题,但没有成功 我试图在UITableViewCell上显示数据,以根据数据动态调整高度 现在,这些应用程序似乎可以很好地处理大量数据,但对于一些数据,标签无法正确调整。如您所见,已使用constrainedToSize功能返回给定文本的高度 这个高度被错误地给出了很多次。例如当标签文本为“高脉冲白色,在滑翔道上-稳定白色,略低于滑翔坡-稳定红色,低脉冲红色”时,返回的高度为63,此时应大于此值 另一个例子: “高脉冲白色,在航道上和滑翔道上-稳定白色,在航道上但在滑翔道上-脉冲白色和红色;低脉冲红色”返回总标签高度为84,但它应该大于84,因为标签根本不适合我的tableview 我注意到的一件奇怪的事情是,不正常的细胞通常大小为63或84。。。我还没有见过更多这样的尺码,但如果这能帮上忙的话 守则:Iphone iOS-动态标签大小未正确返回,iphone,ios,uitableview,ios5,Iphone,Ios,Uitableview,Ios5,我花了几个小时试图解决这个问题,但没有成功 我试图在UITableViewCell上显示数据,以根据数据动态调整高度 现在,这些应用程序似乎可以很好地处理大量数据,但对于一些数据,标签无法正确调整。如您所见,已使用constrainedToSize功能返回给定文本的高度 这个高度被错误地给出了很多次。例如当标签文本为“高脉冲白色,在滑翔道上-稳定白色,略低于滑翔坡-稳定红色,低脉冲红色”时,返回的高度为63,此时应大于此值 另一个例子: “高脉冲白色,在航道上和滑翔道上-稳定白色,在航道上但在滑
if (tableView.tag ==1) {
NSString *cellText;
if ([multipleAddressSplit count]==0) {
if (indexPath.row ==0) {
cellText =[OptionText1 objectAtIndex:i];
}
if (indexPath.row == 1) {
cellText =[OptionText2 objectAtIndex:i];
}
if (indexPath.row == 2) {
cellText =[OptionText3 objectAtIndex:i];
}
}
UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:17.0];
CGSize constraintSize = CGSizeMake(OptionTable.frame.size.width , MAXFLOAT);
CGSize labelSize = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
NSLog(@"========start=========");
NSLog(@"Celltext is: %@",cellText);
NSLog(@"Method Label %f",(labelSize.height));
NSLog(@" 1/3rd %f",(OptionTable.frame.size.height/3-15));
NSLog(@"=========stop========");
if ((labelSize.height)<((OptionTable.frame.size.height/3)-15)) {
NSLog(@" Returned 1/3rd is: %f",(OptionTable.frame.size.height/3));
return (OptionTable.frame.size.height/3);
}
else {
return labelSize.height + 15;
}
if(tableView.tag==1){
NSString*单元格文本;
如果([MultipleReadDressSplit count]==0){
if(indexPath.row==0){
cellText=[OptionText1对象索引:i];
}
if(indexath.row==1){
cellText=[OptionText2对象索引:i];
}
if(indexPath.row==2){
cellText=[OptionText3对象索引:i];
}
}
UIFont*cellFont=[UIFont fontWithName:@“Helvetica”大小:17.0];
CGSize constraintSize=CGSizeMake(OptionTable.frame.size.width,MAXFLOAT);
CGSize labelSize=[cellText sizeWithFont:cellFont constrainedToSize:ConstrainetSize lineBreakMode:UILineBreakModeWordWrap];
NSLog(@“==================================”);
NSLog(@“Celltext为:%@”,Celltext);
NSLog(@“方法标签%f”,(labelSize.height));
NSLog(@“1/3%f”,(可选表格、框架、尺寸、高度/3-15));
NSLog(@“==================================”);
如果在委托方法中((labelSize.height)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
NSString *strIden = [NSString stringWithFormat:@"cell%d",indexPath.row];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:strIden];
if(cell==nil){
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1
reuseIdentifier:strIden] autorelease];
}
}
在委托方法中创建不同的单元格ID。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
NSString *strIden = [NSString stringWithFormat:@"cell%d",indexPath.row];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:strIden];
if(cell==nil){
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1
reuseIdentifier:strIden] autorelease];
}
}
制作不同的单元格ID。解决方案非常简单和琐碎
我把标签的宽度取为单元格的宽度,而文本标签的实际宽度是每边10个像素,从高度减去20个像素就解决了这个问题
谢谢大家的回答。解决这个问题的方法非常简单和琐碎
我把标签的宽度取为单元格的宽度,而文本标签的实际宽度是每边10个像素,从高度减去20个像素就解决了这个问题
谢谢大家的回答。您确定是您的标签太短,而不是实际的单元格吗?如果标签高84点,而单元格只有50点(例如)这看起来很奇怪。你是如何给出单元格高度的?我想你不是因为你不能像这样动态地更改单元格的高度。你需要提前计算所有单元格高度(使用委托方法heightForCellAt…)您是想动态调整标签还是整个单元格的大小?表创建后标签中的数据会发生变化,还是创建后的数据保持静态?数据保持静态,我提供的代码来自“HeightForRowatineXpath”委托方法本身。我正在计算手之前的高度,即使在那时,我也面临着这个错误。很多时候,关于相似数量的数据,在我打印它们的CGSIZE时显示出很大的差异。我被困在这里。从过去这么多天以来,我一直试图解决这个问题。你确定是你的标签太短,而不是实际的c吗ells?如果标签的高度为84点,而单元格的高度只有50点(例如),则看起来会很奇怪。您是如何给出单元格高度的?我假设您不是,因为您无法像这样动态更改单元格的高度。您需要提前计算所有单元格高度(使用委托方法heightForCellAt…)您是想动态调整标签还是整个单元格的大小?表创建后标签中的数据会发生变化,还是创建后的数据保持静态?数据保持静态,我提供的代码来自“HeightForRowatineXpath”委托方法本身。我正在计算手之前的高度,即使在那时,我也面临着这个错误。很多时候,关于相似数量的数据,在我打印它们的CGSIZE时显示出很大的差异。我被困在这里。从过去这么多天来一直试图解决这个问题!没有帮助。我仍然得到混乱的文本。问题是,label大小的计算不正确。如果我找到了解决方案,问题肯定会消失。没有帮助。我仍然会收到混乱的文本。问题是,标签大小的计算不正确。如果我找到了解决方案,问题肯定会消失。