调整uitableviewcell中的文本大小

时间:2012-11-29 06:45:22

标签: iphone ipad

我在表格视图单元格中有一个标签,其大小我必须根据标签中的文字调整大小。在potratit模式下它可以工作,但是当转换到横向模式时,文本不会显示到表格单元格的长度。暂时我已经动态创建了标签,并通过重新加载表格来调整其宽度,具体取决于设备的当前方向。

我已动态创建了标签,并将其添加到contentView上。代码如下

UILabel *lblSize = [[UILabel alloc] initWithFrame:CGRectMake(nameLbl.frame.origin.x + nameLbl.frame.size.width , 0, 580, 60)];
lblSize.backgroundColor = [UIColor clearColor];
lblSize.font = [UIFont fontWithName:@"TrebuchetMS" size:18];
lblSize.textColor = [UIColor blackColor];
lblSize.minimumFontSize = 10;
lblSize.tag = 3;
[cell.contentView addSubview:lblSize];

在纵向模式下执行代码时会发生什么?

| Page1 |一些文字。一些文字。一些文字。一些文字。一些文字.... |

横向模式下的内容如下所示

| Page 1 |一些文字。一些文字。 .... |

我不想使用我使用过的方法。是否有其他可用于解决问题的方法。请建议一些解决方案。我目前正在使用iPad并需要一个解决方案。

2 个答案:

答案 0 :(得分:0)

只需使用此波纹管条件设置框架

    if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation))
    {
         // code for landscape orientation      
    }

    if (UIDeviceOrientationIsPortrait([UIDevice currentDevice].orientation))
    {
         // code for Portrait orientation       
    }

答案 1 :(得分:0)

cellForRowAtIndexPath

中使用以下内容
CGFloat maxHeightForLabel=1000.0;
CGSize size=[label.text sizeWithFont:label.font
       constrainedToSize:CGSizeMake(label.frame.size.width, maxHeightForLabel)];
CGRect frame=label.frame;
frame.size=size;
label.frame=frame;

关于方向更改,请致电[yourTableView reloadData];