gpt4 book ai didi

ios - 如何使用 XCode 6 在 iOS 7 的 UItableviewCell 中制作 UIlabel 的动态高度

转载 作者:行者123 更新时间:2023-11-29 12:31:33 25 4
gpt4 key购买 nike

我正在使用 Xcode 6 并创建了一个新项目并在 iOS7 中遇到自动布局问题,因为它在 iOS8 中正常工作。我正在使用以下代码:-

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"cell";

UITableViewCell *cell = (UITableViewCell*)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
UILabel *lbl1=(UILabel*)[cell.contentView viewWithTag:1];
lbl1.text = @"test fkdjsjk kjhsdf ksjh ksjdhf jks kjh kjdhf kjsd h kjh j ,jhfjdfshfk jh fkjsdh fkjs dhkfjhs dkjfh dksjhf jksd hfjkdhs fk jksdhf kjsdh fkjsdh fjkhdsk fjkdsh fkjdsh fkjdsh fkjs djkf djksf kjdshfkjds fkjdsh fkjhs dkjfh kdjs fkdjshfkdsjfh kdjsh fk";


[lbl1 setPreferredMaxLayoutWidth:lbl1.frame.size.width];




[cell setNeedsUpdateConstraints];
[cell updateConstraintsIfNeeded];

cell.frame = CGRectMake(0.0f, 0.0f, CGRectGetWidth(cell.bounds), CGRectGetHeight(tableView.bounds));

[cell setNeedsLayout];
[cell layoutIfNeeded];

CGFloat height = [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;

return height;
}
- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath
{

static NSString *simpleTableIdentifier = @"cell";
UITableViewCell *cell = (UITableViewCell*)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

return cell.frame.size.height;

}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"cell";

UITableViewCell *cell = (UITableViewCell*)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
UILabel *lbl1=(UILabel*)[cell.contentView viewWithTag:1];
lbl1.text = @"test fkdjsjk kjhsdf ksjh ksjdhf jks kjh kjdhf kjsd h kjh j ,jhfjdfshfk jh fkjsdh fkjs dhkfjhs dkjfh dksjhf jksd hfjkdhs fk jksdhf kjsdh fkjsdh fjkhdsk fjkdsh fkjdsh fkjdsh fkjs djkf djksf kjdshfkjds fkjdsh fkjhs dkjfh kdjs fkdjshfkdsjfh kdjsh fk";

[lbl1 setBackgroundColor:[UIColor greenColor]];

[cell.contentView setBackgroundColor:[UIColor redColor]];


[cell setNeedsUpdateConstraints];
[cell updateConstraintsIfNeeded];



return cell;
}

我的要求只是在 iOS 7 中标签应该动态地获取高度作为提供给它的内容。

最佳答案

你需要这样做。

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

CGSize constrainedSize = CGSizeMake(self.view.frame.size.width - 30, FLT_MAX);

NSDictionary *attributesDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
[UIFont fontWithName:@"HelveticaNeue" size:14], NSFontAttributeName,
nil];

CGRect requiredHeight = [YourStringObject boundingRectWithSize:constrainedSize
options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading)
attributes:attributesDictionary
context:nil];

return requiredHeight.size.height + 20;
}

我使用额外的 20 作为额外的填充。希望这对你有用。

关于ios - 如何使用 XCode 6 在 iOS 7 的 UItableviewCell 中制作 UIlabel 的动态高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27539576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com