gpt4 book ai didi

uitableview - 在 cellForRowAtIndexPath 中更改 UITextView 的高度

转载 作者:行者123 更新时间:2023-12-01 03:56:06 25 4
gpt4 key购买 nike

我正在尝试更改我在 tableView 的自定义单元格中拥有的 UITextView 的高度。

'OverviewCell' 是 Nib 中这个自定义单元格的标识符,并且 UITextView 'postIntro' 也被拖入 Nib 。

可悲的是高度没有改变,只有在我滚动高度后才改变。无需滚动即可看到的单元格只是 Nib 的默认高度。

当我尝试更改“postImage”的高度时,会发生同样的问题。

这是我的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"OverviewCell";

OverviewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

Post *post = [self.posts objectAtIndex:[indexPath row]];

if(!cell)
{
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"OverviewCell" owner:nil options:nil];

for(id currentObject in topLevelObjects)
{
if([currentObject isKindOfClass:[OverviewCell class]])
{
cell = (OverviewCell *)currentObject;
break;
}
}
}

[[cell postImage] setImage:[UIImage imageWithData:post.image]];
[[cell postTitle] setText:post.title];
[[cell postIntro] setText:post.intro];

// Resize the intro textview so the text fits in.
CGRect frame = cell.postImage.frame;
frame.size.height = 20; //cell.postIntro.contentSize.height;
[cell.postIntro setFrame:frame];

NSLog([NSString stringWithFormat:@"Height of textView on indexpath %i is set to %f", indexPath.row ,cell.postImage.frame.size.height]);

return cell;

}

欢迎对我的代码提出任何其他建议...

最佳答案

我终于通过在代码中更改 UITextview 的约束使其工作。

我已经创建了 IBOutlet,它附加到 UITextview 的约束。

IBOutlet NSLayoutConstraint * postContentHeightConstraint;

之后,我将约束高度设置为单元格的指定高度( contentSize )。
self.postContentHeightConstraint.constant = self.postContent.contentSize.height;

将新高度设置为约束后,调用 UITextView 上的 layoutIfNeeded 函数
[self.postContent layoutIfNeeded];

关于uitableview - 在 cellForRowAtIndexPath 中更改 UITextView 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17234842/

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