根据单元格增加 TableView 高度

2024-01-03

我需要增加UITableView高度基于UITableViewCell内容大小。 我正在使用自定义 Google 自动完成。我有一个UITextField。当我在其中输入一个字母时UITextField它会打电话shouldChangeCharactersIn范围委托方法。

在该方法中,我将向 Google AutoComplete API 发送动态请求以获取预测结果。

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {

    if tableView.numberOfRows(inSection: 0) > 0
    {

    let newLength = (textField.text?.characters.count)! + string.characters.count - range.length
    let enteredString = (textField.text! as NSString).replacingCharacters(in: range, with:string)

    if newLength == 0 {
        tableView.isHidden = true
    }

    if newLength > 0
    {
        address.removeAll()
        self.tableView.isHidden = false

        GetMethod("https://maps.googleapis.com/maps/api/place/autocomplete/json?input=\(enteredString)&key=MYAPIKEY", completion: { (resultDict) in

            let resultArray = resultDict.object(forKey: "predictions")! as! NSArray

            print(resultArray.count)

            for temp in resultArray

            {
                 let newtemp = temp as! NSDictionary
                 let tempAdd = newtemp.value(forKey:"description") as! String
                let placeId = newtemp.value(forKey:"place_id") as! String
                var dict = [String : AnyObject]()
                dict["address"] = tempAdd as AnyObject?
                dict["latlong"] = placeId as AnyObject?
                self.address.append(dict as AnyObject)
                 print(newtemp.value(forKey:"description"))
                 print(self.address.count)
                self.tableView.reloadData()

            }

        })
      }
    return true
}

当我将所有地址动态存储到地址数组后,我需要增加UITableView高度基于传入地址内容。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cellIdentifier = "TableViewCell"
    var cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier)
    if cell == nil
    {
    cell = UITableViewCell(style: .default, reuseIdentifier: cellIdentifier)
    }

    let addresstoDisp  = address[indexPath.row] as! NSDictionary
    let name = addresstoDisp.value(forKey: "address")
    cell?.textLabel?.numberOfLines = 0
    cell?.translatesAutoresizingMaskIntoConstraints = false

    cell?.textLabel?.lineBreakMode = NSLineBreakMode.byWordWrapping
    cell?.textLabel?.textAlignment = NSTextAlignment.center
    cell?.textLabel?.text = name as! String

    return cell!
}

UITableViewCell身高正在完美增加。我还需要增加 tableView 高度。


创建单元格后添加这些行。因为它在 viewDidLoad() 中返回 0 高度

 var frame = tableView.frame
 frame.size.height = tableView.contentSize.height
 tableView.frame = frame

UPDATE

//After Tableviews data source values are assigned
tableView.reloadData()
tableView.layoutIfNeeded()
tableView.heightAnchor.constraint(equalToConstant: tableView.contentSize.height).isActive = true
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据单元格增加 TableView 高度 的相关文章

  • 如何在iOS8自定义键盘上方添加工具栏?

    My problem is write picture I really need you help Maybe inputAccessoryView inputAccessoryViwController can be used but
  • 数组索引超出范围的表视图

    我正在使用数组从数据库读取数据 目前数组中有 8 个项目 我正在尝试制作一个有节标题的表格 目前我有 4 个部分 并且我已正确设置并且它有效 它也可以在第一次运行时运行 但是当我尝试向后滚动时 我发现索引超出了范围 我正在使用 myarra
  • 使用 CLPlacemark、administrativeArea、iOS6/iOS7 更改内容

    我计划为 ios 7 制作一个应用程序 并且有管理区域地标属性的问题 对于 iOS6 我得到行政区域的全名 例如 加利福尼亚 但对于 iOS7 我得到 CA 的值 当情况如此变化时 这是一个问题 有什么方法可以控制这个输入 使其更加一致吗
  • 新的 iTunes 连接界面错误“您必须选择一个版本”

    当尝试将我的新应用程序提交到应用程序商店时 我注意到苹果已经更改了其网站界面 更新元数据和关键字并点击 提交审核 后 我收到错误 您必须选择一个版本 通过谷歌搜索 我没有找到答案 但是 我注意到 构建 标题旁边有一个加号按钮 您必须在其中选
  • 了解 malloc_history 转储

    如果您曾经问 过如何调试 Objective C 中的释放 分配问题 您将遇到这些可以帮助跟踪问题的环境设置 NSZombieEnabled 释放后保留对象 以便您可以获得指针等 MallocStackLogging 保留对象历史记录以供以
  • 排除 Realm 模型类

    我的应用程序中配置了两个领域文件 我想存储我的Log将模型与其他模型分开保存为单独的文件 我的问题是我也看到了我的Log我不想要的默认 Realm 文件中的模型类 如何从给定的 Realm 文件中排除特定的模型类 我使用主 Realm 文件
  • Swift 3/4 dash 转驼峰式 (Snake 转驼峰式)

    我正在尝试执行一个简单的破折号到驼峰案例 在 swift 3 或 4 中 this is my id 将变成 thisIsMyId 无论我做什么 我都找不到足够优雅的方法来做到这一点 以下不起作用 str split separator e
  • 核心数据二进制数据允许外部存储崩溃

    我在 iOS 12 0 1 上发生崩溃 日志如下 ImageIO CFDataGetBytes data 0x28539b2f0 size 154262 offset 8 count 8 dst 0x16dbf86f0 External d
  • 如何使用 SwiftUI 拖动工作滑块

    我想拖动一个滑块 当然也让它滑动 我可以做其中之一 但我不能两者都做 如何拖动并拥有可用的滑块 我也尝试找到一种方法来删除手势 但我找不到方法来做到这一点 还尝试了 Apple Composition SwiftUI Gestures 文档
  • 更改 UIAlertController 的标题字体大小

    我正在尝试更改标题fontSize in an UIAlertController 但我无法管理如何设置我的NSMutableAttributedString to the title 财产 所以我一直在创造NSMutableAttribu
  • TypeError:cli.init 不是 React Native 的函数

    在 MacBook Air M1 芯片中运行 npx react native init appName 时 TypeError cli init is not a function at run opt homebrew lib node
  • iOS TestFlight - 外部测试人员未收到新版本通知

    我已经向外部 TestFlight 用户提供了一个应用程序 他们已收到电子邮件并按预期安装了应用程序 他们有版本 1 0 Build 1 不过 我现在已经上传了一个新版本 版本 1 0 版本 2 这已获得批准 在外部测试页面中 我添加并选择
  • iOS 上邮件到达时收到通知吗?

    当邮件到达标准邮件应用程序时 有没有办法让应用程序收到通知 更准确地说 我想编写一个应用程序 它能够从标准邮件应用程序读取传入的电子邮件 其中包含自定义 txt 格式的新联系人或事件 然后 应用程序应将此新联系人 事件添加到 ipad 反之
  • 如何为 App Store 添加关联域? - App Store Connect 的 app-ads.txt 文件

    如您所知 Admob 向发布商发送了有关 app ads txt 文件的电子邮件 Admob 在电子邮件中表示 因此 我们邀请您仔细检查您的 app ads txt 文件 如果 您已经在发布日期之前发布了一份 文件 应发布在列出的网站的根目
  • 可以转换为 Swift 5

    我在 Xcode 10 2 中收到此警告 可以转换为 Swift 5 当我单击此错误时 它会打开此窗口 当我们点击Next会发生什么 swift 的当前版本是 swift5 仅在 Xcode 10 2 中受支持 而您在 Xcode 10 2
  • Quickblox 聊天未进行身份验证

    我在我的应用程序中使用 Quickblox 进行一对一聊天 用户已经登录 但是当我尝试登录聊天时 出现以下错误 2014 03 31 12 42 09 532 MyChat 2175 3803 QBChat didNotAuthentica
  • iphone:使用 iOS 5 和 Xcode 4.2 提交应用程序? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我有一个在
  • 启动时运行后台任务

    我正在编写一个 iOS 应用程序 它使用 Dropbox Datastore API 在多个设备之间同步数据 在 Android 上 我可以告诉服务在启动时启动 这使其能够同步 设备关闭时可能发生的任何更改 我无法找到让我的应用程序在 iO
  • iOS swift 应用程序启动时出现黑屏

    我有个问题 当我启动我的应用程序时 会看到黑屏几秒钟 然后出现启动屏幕 我的启动画面不是默认的 我使用了视图控制器 因为我的启动画面有一个动画 我搜索了一个解决方案 我得到了这个 在我的闪屏加载 iPhone 之前出现黑屏 https st
  • Expo eas-cli iOS 构建失败

    我已经使用 React Native 创建了一个应用程序 并尝试通过 Expo 的 eas cli 创建一个 iOS 应用程序商店 跑步时eas build platform ios the Fastlane build failed wi

随机推荐

  • 在 contenteditable 元素中,在 HTML 标签之间移动光标

    http jsfiddle net Y7tgx 2 http jsfiddle net Y7tgx 2 Firefox 比 Chrome 处理得更好 但都不完全是我想要的方式 它们都将所有相邻的 HTML 标签集中在一起并将它们视为一个 我
  • 在 C++11 中禁用复制类的最简洁方法

    当存在用户定义的析构函数时 我在处理自 C 11 默认生成的复制构造函数和复制赋值运算符以来已弃用的问题 对于大多数足够简单的类 默认生成的构造函数 运算符和析构函数都可以 考虑以下声明析构函数的原因 在基类中将普通析构函数设为虚拟 hea
  • Ember 的 registerBoundHelper 和车把块

    所以我已经从here https github com danharper Handlebars Helpers并修改它 以便它使用 registerBoundHelper 通过 Ember 注册它的助手 我这样做的原因是因为我基本上需要一
  • *** _pickle.UnpicklingError:pickle 数据被截断

    我有一个包含一千个 pickle 文件的目录 我将它们一一加载 如下所示 我正在使用 python3 import pickle for data in directory with open data rb as handle pickl
  • 过度使用泛型[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 当没有明显的实际好处时 人们对泛型的
  • 从 CSV 中删除行

    我有一个包含多个标题的 csv 文档 例如 Date RQ PM SME Activity Status code 2 2 12 6886 D WV John Smith Recent 2004 以及一个文本文档 它只是状态代码的列表 每行
  • 将对象传递给网络工作者

    我正在尝试通过 postMessage 函数将对象传递给网络工作者 这个对象是一个正方形 有几个功能可以在画布上和其他东西上绘制自己 Web Worker 必须返回此对象的数组 问题是 当我使用该对象调用 postMessage 函数时 出
  • 将 SendGrid 与 appharbor 一起使用时出现问题

    我正在使用 appharbor 添加 SendGrid 作为插件 他们为我提供了 smtp 主机 smtp sendgrid com 端口 587 用户 32adf793 2cbf 492c 9bb9 apphb com 当我使用这些详细信
  • Collectors#toList 的运行时复杂性

    在Java库源代码中 Collectors toList方法定义如下 public static
  • Mailchimp 注册表单与 angular2 [重复]

    这个问题在这里已经有答案了 我正在尝试将 mailchimp 注册表单嵌入到我的 angular2 应用程序中 http kb mailchimp com lists signup forms add a signup form to yo
  • 取消部署出现错误:应用程序未注册(Glassfish)

    我使用 Glassfish 的 Web GUI 取消部署了我的应用程序 但是 如果我按取消部署我的实际应用程序 则什么也不会发生 在我的日志文件中出现新错误 应用程序未注册 严重 我现在如何正确取消部署我的APP 我找到了一个简单的答案 从
  • SWT:单显示器与多显示器

    SWT 旨在支持多种Display实例 每个实例都有自己的事件循环 这对于什么目的是有用的或需要的 不是一个Display实例 例如Display getDefault 充足的 Display 类的文档说 使用 SWT 构建的应用程序几乎总
  • 无法在 Safari 或 UIWebView 中通过 HTTPS 查看 Quicktime 影片

    我试图让我的 iPhone 应用程序除了 HTTP 之外还可以使用 HTTPS 但使用 UIWebView 或 MPMoviePlayerController 查看 Quicktime MOV 文件似乎无法通过 HTTPS 工作 我得到 这
  • Android 中 OOM(内存不足异常)是如何发生的?

    我正在尝试显示来自画廊的图像或从相机捕获的图像ImageView 我开始得到OOM正在处理中 所以我决定找出它是如何工作的 所以我尝试使用不同尺寸的图像 这是观察结果 我尝试将 19KB 的图像加载到ImageView并收到以下错误消息 无
  • Flutter:在“bottomNavigationBar”上显示“showBottomSheet”

    我如何在 bottomNavigationBar 顶部显示 showBottomSheet 说明性示例 当用户单击图钉 屏幕1 时 结果是 屏幕2 但我想得到 屏幕3 return Scaffold appBar AppBar title
  • 在 PyTorch 中使用 module.to() 移动成员张量

    我正在 PyTorch 中构建变分自动编码器 VAE 但在编写与设备无关的代码时遇到问题 自动编码器是nn Module具有编码器和解码器网络 它们也是 网络的所有权重都可以通过调用从一台设备移动到另一台设备net to device 我遇
  • tkinter python 最大化窗口

    我想将窗口初始化为最大化 但我不知道该怎么做 我在 Windows 7 上使用 python 3 3 和 Tkinter 8 6 我想答案就在这里 http www tcl tk man tcl TkCmd wm htm m8 http w
  • doctype 影响 html/body/canvas 的宽度和高度

    我有一个非常简单的带有画布的 HTML 文件 我已经实现了 resizeToWindow 函数 因此如果用户调整浏览器窗口的大小 画布也会随之调整 但是 我的窗口中出现了滚动条 我注意到画布下方有一个小的白色区域 当我使用元素检查工具时 该
  • 如何记录 PHP + cURL 发出的 http 请求?

    我设置了一个 PHP 脚本 每当在站点上执行操作时都会发出 cURL 请求 问题在于 每当操作运行时 信息都会被 POST 两次 我需要弄清楚这是否是我的问题 cURL 运行了两次 或者它发布到的 URL 执行了两次操作 我想最好的方法是查
  • 根据单元格增加 TableView 高度

    我需要增加UITableView高度基于UITableViewCell内容大小 我正在使用自定义 Google 自动完成 我有一个UITextField 当我在其中输入一个字母时UITextField它会打电话shouldChangeCha