gpt4 book ai didi

ios - 在静态表格 View 中动态调整 TextView 和表格 View 单元格的大小

转载 作者:行者123 更新时间:2023-12-01 16:42:17 26 4
gpt4 key购买 nike

我有一个静态表格 View ,我将其用作我的应用程序的一些数据输入。其中一个单元格中有一个 UITextView,它需要随着用户类型而动态增长和收缩,以及单元格随它的逻辑增长/收缩。我阅读了很多关于此的帖子,但我认为我被抛出了,因为我使用的是 STATIC TableView 。

这是我调整大小的尝试(几乎完全失败):

- (void)textViewDidChange:(UITextView *)textView
{
self.numberOfLines = (textView.contentSize.height / textView.font.lineHeight) - 1;

float height = 44.0;
height += (textView.font.lineHeight * (self.numberOfLines - 1));

CGRect textViewFrame = [textView frame];
textViewFrame.size.height = height - 10.0; //The 10 value is to retrieve the same height padding I inputed earlier when I initialized the UITextView
[textView setFrame:textViewFrame];

[self.tableView beginUpdates];
[self.tableView endUpdates];

[self.messageTextView setContentInset:UIEdgeInsetsZero];
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
float height = 44.0;
if (self.messageTextView) {
height += (self.messageTextView.font.lineHeight * (self.numberOfLines - 1));
}
return height;
}

我会采取任何提示!谢谢。

最佳答案

您无需执行任何操作,只需通过以下代码:-
有一个新的函数来代替sizeWithFont,即boundingRectWithSize。

在我的项目中添加以下函数,它利用了iOS7上的新函数和低于7的iOS上的旧函数。它的语法与sizeWithFont基本相同:

   -(CGSize)text:(NSString*)text sizeWithFont:(UIFont*)font constrainedToSize:(CGSize)size{
if(IOS_NEWER_OR_EQUAL_TO_7){
NSDictionary *attributesDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
font, NSFontAttributeName,
nil];

CGRect frame = [text boundingRectWithSize:size
options:(NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading)
attributes:attributesDictionary
context:nil];

return frame.size;
}else{
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
return [text sizeWithFont:font constrainedToSize:size];
#pragma clang diagnostic pop
}
}

您可以将 IOS_NEWER_OR_EQUAL_TO_7 添加到项目中的 prefix.pch 文件中:
#define IOS_NEWER_OR_EQUAL_TO_7 ( [ [ [ UIDevice currentDevice ] systemVersion ] floatValue ] >= 7.0 )

我从这个链接中提到过:-

UITableViewCell with UITextView height in iOS 7?

关于ios - 在静态表格 View 中动态调整 TextView 和表格 View 单元格的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23220332/

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