我们目前正在调整UITabView中UILabel的高度。现在,客户端希望根据内容调整UITableViewCell中包含的两个标签。研究这个问题,我们看到各处都有解决方案来调整单个标签的大小,但没有关于多个标有人能指出我们为这个问题找到一个好的资源吗?
答案 0 :(得分:0)
您调整标签大小的研究是正确的,您需要编写仅在一个标签上调整大小的逻辑。如果你看到了
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
其返回类型为uitableviewcell。它总是为单元格返回相同的配置(除非您为每一行创建静态单元格)。
[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
这种方法使细胞和细胞出列。重用它。所以你需要正确的逻辑来调整你创建单元格的标签的大小。或者更好地纠正自定义单元类中的调整大小逻辑。我正在添加代码,这可以帮助我解决这个问题。
CGSize maximumLabelSize = CGSizeMake(270, FLT_MAX);
CGSize expectedLabelSize = [myString sizeWithFont:[UIFont fontWithName:@"Helvetica" size:16.0f] constrainedToSize:maximumLabelSize lineBreakMode:NSLineBreakByWordWrapping];
NSLog(@"Expected Size of label based on string--%@",NSStringFromCGSize(expectedLabelSize) );
//adjust the label the the new height.
CGRect newFrame = myLabel.frame;//get initial frame of your label
newFrame.size.height = expectedLabelSize.height;
myLabel.frame = newFrame;
NSLog(@"new frame of label--%@",NSStringFromCGRect(newFrame));
[myLabel setText:attString];