gpt4 book ai didi

ios - 基于 UITextView 的自动调整单元格大小

转载 作者:行者123 更新时间:2023-11-28 17:52:37 25 4
gpt4 key购买 nike

我在 Storyboard的 UITableViewCell 中有一个 UITextView。然后我在 UITextView 的所有 4 个边上添加了一个约束。

在下面的代码中,我尝试让 textView 在用户输入文本时动态变化。我很确定那成功了。但问题是细胞不是。下面是我试过的代码,没有成功。

-(void)viewDidLoad
{
tableView.rowHeight = UITableViewAutomaticDimension;
tableView.estimatedRowHeight = 44;
}

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if (textView == myTextView)
{
[self textViewFitToContent:myTextView];

[self.tableView beginUpdates];
[self.tableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForItem:1 inSection:0]] withRowAnimation:UITableViewRowAnimationNone];
[self.tableView endUpdates];
}
return YES;
}

- (void)textViewFitToContent:(UITextView *)textView
{
CGFloat fixedWidth = textView.frame.size.width;
CGSize newSize = [textView sizeThatFits:CGSizeMake(fixedWidth, MAXFLOAT)];
CGRect newFrame = textView.frame;
newFrame.size = CGSizeMake(fmaxf(newSize.width, fixedWidth), newSize.height);
textView.frame = newFrame;
textView.scrollEnabled = NO;
}

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

{
return myTextView.frame.size.height + 40;
}

我是初学者,请不要对我太苛刻。

谢谢

最佳答案

您的代码很好,事实上完美无瑕,而且做得很好。没有看到你声明的变量,我相信单元格没有调整大小的原因是因为你的 heightForRowAtIndexPath 方法返回了错误的 UITextView 的高度。而不是 txtSymptoms ,它在调整代码的任何其他地方都没有使用,您应该使用 myTextView ,当用户编辑文本时,它将触发 tableView 重新加载。

关于ios - 基于 UITextView 的自动调整单元格大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27883588/

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