RxSwift + UITableViewCell如何获取heightForRowAt中的单元格对象

2023-12-23

我有一个带有 UITableView 的视图控制器。表数据使用 RxSwift 填充:

let observable = Observable.just(data)
observable.bindTo(tableView.rx.items(cellIdentifier: "CategoryCell", cellType: CategoryCell.self)) { (row, element, cell) in
    cell.setCategory(category: element)
}.disposed(by: disposeBag)

tableView.rx.setDelegate(self).disposed(by: disposeBag)

我有以下委托功能:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    // cell = nil. 
    let cell = tableView.cellForRow(at: indexPath)

    let screenWidth = UIScreen.main.bounds.size.width

    let itemWidth = (screenWidth / 3.0) - 20
    let itemHeight = (itemWidth) / 0.75 + 110

    return itemHeight
}

我想从内部访问单元格对象heightForRowAt但它给了我nil。有办法进入这里的牢房吗?我一直在 RxCocoa 项目中查看 UITableView+Rx.swift 但没有这方面的功能。我还有什么其他选择?

EDIT:我试图在我的代码中实现以下目标:

class CategoryCell : UITableViewCell {
     func calculateHeight() {
        let screenWidth = UIScreen.main.bounds.size.width

        let itemWidth = (screenWidth / 3.0) - 20
        let itemHeight = (itemWidth) / 0.75 + 110

        return itemHeight
     }
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    // cell = nil. 
    guard let cell : CategoryCell = tableView.cellForRow(at: indexPath) as? CategoryCell {
         return 0.0
    }
    return cell.calculateHeight()
}

电话tableView.cellForRow(at: indexPath)返回零tableView(_: heightForRowAt:)因为 heightForRowAt 是在特定的 indexPath 上调用的before调用 cellForRowAt。

这里最好的选择是使用自调整大小的单元格。 (https://www.raywenderlich.com/129059/self-sizing-table-view-cells https://www.raywenderlich.com/129059/self-sizing-table-view-cells)。另一种选择是将单元格的大小保留为模型的一部分并在此处访问它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RxSwift + UITableViewCell如何获取heightForRowAt中的单元格对象 的相关文章

  • 快速球体结合星数据

    我想构建一个观星应用程序 现在我已经构建了一个球体并用星图覆盖它 基于天体坐标 https svs gsfc nasa gov cgi bin details cgi aid 3895 https svs gsfc nasa gov cgi
  • 设置 TableView setEditing 时无法选择 UITableViewCell

    我希望能够选择多行 如下所示的默认邮件应用程序 我有一个名为编辑的按钮 可以调用 self myTableView setEditing YES animated YES 编辑按钮成功显示单元格左侧的圆圈 如上所示的邮件应用程序 但是 当我
  • 快速将阴影绘制到 uibezierpath

    我有一个奇怪的问题 尽管我确实阅读了很多有关如何执行此操作的教程 但最终结果仅显示贝塞尔线 而不显示任何阴影 我的代码非常简单 let borderLine UIBezierPath borderLine moveToPoint CGPoi
  • 具有默认值的不可失败枚举初始值设定项

    有没有办法在初始化时定义枚举rawValue会默认为某个值而不是失败吗 在值可能出乎意料的情况下很有用 即服务器 API 错误 你的意思是这样的吗 enum ErrorCode Int case NoErr 0 Err1 Err2 Last
  • 斯威夫特/iOS。从导航堆栈中删除一些视图控制器

    这是我想做的 但我不确定这是否是正确的方法 所以请给我建议如何去做 我有初始 VC 和导航 VC 我从中推送第一个 VC 从中推送第二个 VC 接下来我介绍 来自第二个 VC 的 NavigationController 第三个 VC 现在
  • 删除 UINavigationBar 下的 1px 边框 - 不起作用

    IBOutlet var navBar UINavigationBar self navBar setBackgroundImage UIImage forBarMetrics UIBarMetrics Default self navBa
  • 我在 NSDateComponentsFormatter 上的 allowedFractionalUnits 上做错了什么?

    基本上我想要的是获取仅以小时表示的时间间隔的值 而不将其四舍五入为完整小时 使用NSDateComponentFormatter https developer apple com library ios documentation Fou
  • 在 Firebase 和 Swift 3 中注册之前如何验证用户名是否存在?

    我整合了五个视图控制器的注册流程 而不是一个用于 Firebase 注册的中央 VC 通常情况下 在注册之前会出现数据丢失的问题 但我会以编程方式将所有输入的值通过 segue 推送到最终确认页面 并将数据发送到 Firebase 最终进行
  • Swift - UICollectionView 重复(重复)单元格

    你好 我有一个数组 其中包含从 flickr 获取的 100 张图片 url 当我使用 UICollectionView 时 我显示 100 个单元格 屏幕上只有 8 个单元格 当我向下滚动查看下一个 8 个单元格时 它们与前一个单元格相同
  • 如何将 WKUIDelegate 实现到 SwiftUI WKWebView 中?

    我正在 Xcode v11 上创建一个 Web 应用程序 但在实现 WKUIDelegate 来显示 Javascript 警报并在 Web 应用程序上正确确认时遇到问题 我在 ContentView swift 上得到了一个非常简单的 w
  • 访问 UserDefault 数组 URL 以填充 CollectionView

    这是上一篇文章的后续内容here https stackoverflow com questions 48142238 save and append an array in userdefaults from imagepickercon
  • 如何在谷歌地图中绘制多个点之间的路线?

    我已经在我的应用程序中实现了谷歌地图 并且我需要在地图上标记几个点 我能够用标记标记它们 但我面临的问题是尝试绘制所有这些点之间的路径 我尝试使用折线 但它只是在 A 点和 B 点之间绘制一条直线 我还尝试了谷歌地图 DirectionsA
  • 如何使用 swift 在 UITabBarController 中以编程方式添加选项卡?

    如何以编程方式从 UIViewController 扩展的任何类创建选项卡 class DashboardTabBarController UITabBarController override func viewDidLoad here
  • 在 WidgetKit 中每分钟更新时间文本标签

    是否可以在小部件中创建显示当前时间并实时更新的文本标签 尝试创建时钟小部件 但小部件每 5 分钟仅更新 1 次 创建时间表没有帮助 使小部件保持最新 不适用于当前时间 仅适用于计时器等 一个可能的解决方案是使用time日期样式 A styl
  • 快速检查网络速度

    我想从我的 swift 应用程序检查网络速度 我发现很多帖子描述了Reachability特别是查找连接是否可达以及是 WIFI 连接还是 WWAN 连接的方法 我的问题 是否可以检测 WWAN 的类型 2G 3G 4G 你可以用以下命令检
  • 使用 Swift 在 Sprite Kit 中构建棋盘游戏? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在使用 Swift 的 Sprite Kit 中 我试图构建一个国际象棋棋盘 实际上是一个类似国际象棋的棋盘 平铺网格 那么一般来说
  • Swift 中的 @autoreleasepool 相当于什么?

    在 Swift 中 我注意到没有 autoreleasepool 构造 尽管 Swift 确实使用了 ARC 在 Swift 中管理自动释放池的正确方法是什么 或者它是否因某种原因被删除 语法如下 autoreleasepool code
  • 如何为所有整数类型创建通用整数到十六进制函数?

    我想为所有整数类型创建一个整数到十六进制函数 对于1字节的Int8 它返回两个字母 例如0A 对于2字节的Int16 它返回四个字母 例如0A0B 对于8字节的Int64 它返回16个字母 例如0102030405060708 func h
  • Xcode 11 - 在 Catalyst Swift 中禁用调整大小模式

    We are 将我们基于 Swift 的 iOS 应用程序转换为 Mac兼容使用Catalyst在 Xcode 11 中 当用户使用时 我们在 UI 中面临一个问题resize应用程序窗口 那么我们可以禁用调整大小模式并为应用程序窗口提供修
  • 如何删除以前的 ViewController

    我是一名学生 对编程还很陌生 我正在尝试在业余时间学习 Objective C Swift 我使用 spriteKit 和 swift 制作了一个游戏 有多个菜单 场景 我正在尝试从一个视图控制器转换到另一个视图控制器 为此 我使用了以下代

随机推荐

  • 是否可以设置现有 Azure blob 的内容处置?

    基于刺激在这里的答案 Azure 存储 API 内容配置 https stackoverflow com questions 20719641 azure storage api contentdisposition 以及在这里找到的信息
  • 如何使用 PendingIntent 从服务到客户端/活动进行通信?

    我一直在 Android 开发者网站上阅读以下文本 特别是在框架主题 gt 服务 gt 启动服务 http developer android com guide topics fundamentals services html Star
  • if else 在mysql中查询

    我需要 mysql 查询中嵌套 if else 条件的示例 您还可以将 case 语句用于 if else 条件 SELECT CASE field1 WHEN A THEN value is A WHEN B THEN value is
  • 为什么“splatting”关键字参数时 ** 是可选的?

    鉴于此方法定义 def foo a nil b nil p a a b b end 当我使用单个哈希参数调用该方法时 哈希总是隐式转换为关键字参数 无论 hash b 1 foo hash gt a gt nil b gt 1 foo ha
  • 在 Typescript 中创建 `toFunc` 泛型方法?

    我有一个 Ts 模型 需要填充一些属性 当前的代码简化是 var claimSummaryDetails Name this store selectSync currentUser Result Family find m gt m Me
  • 上传资源文件时,createBlockOutputStream 中 Spark HDFS 异常

    我正在尝试在集群中运行我的 JARyarn cluster但一段时间后我遇到了例外 最后INFO在失败之前是Uploading resource 我已经检查了所有安全组 确实如此hsdf ls成功但仍然收到错误 bin spark subm
  • Mapbox 与 Angular 6.“找不到地图容器”错误

    我正在开发我的第一个角度网络应用程序 我想介绍一些类似于谷歌地图的东西 由于新的计费策略 我不想使用最后一个 所以我尝试了 MapBox 按照教程 我成功创建了我需要的地图 问题是 我不知道如何在角度分量上显示它 我为地图生成了这个文件 并
  • 此上下文中仅支持原始类型或枚举类型

    我已经看到了很多关于这个主题的问题 但我无法对其中任何一个真正解决我所看到的问题进行排序 我有一个活动实体 用于跟踪分配给哪个员工以及哪个员工创建了记录并更新了记录 如果我删除 where a AssignedEmployee curren
  • PHP获取外部页面内容

    我从另一个网站获取 htmlfile get contens 我的问题是如何获得特定的标签值 假设我有 div p class paragraph 1800 p div 我怎样才能获得段落的值 谢谢 如果这个例子真的那么简单 你可以只使用正
  • 如何从 java 客户端正确使用 Prometheus Histogram 来跟踪大小而不是延迟?

    我有一个处理集合的 API 该API的执行时间与集合大小有关 集合越大 花费的时间就越多 我正在研究如何使用普罗米修斯做到这一点 但不确定我是否正确地做事 该领域的文档有点缺乏 我做的第一件事是定义一个摘要指标来衡量 API 的执行时间 我
  • 获取“单例类型”的类型

    我们可以通过 Shapeless 创建文字类型 import shapeless syntax singleton var x 42 narrow x Int 42 42 但我该如何操作Int 42 如果甚至不可能创建类型别名 则作为类型
  • python 中的纯文本格式[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在开发一个用 python 创建
  • iOS 如何让 MapKit 显示自定义室内地图?

    我正在尝试创建我正在工作的办公室的地图 我有一个高分辨率图像 并且希望将其自动旋转到用户前进的方向 从而允许用户在地图上导航 我认为这可以使用 CoreMotion CoreLocation 和 UIScrollView 来完成 但这似乎涉
  • 错误:字符串类型的值没有成员 ComponentsSeparatedByCharactersInSet

    以下代码引发以下错误 字符串类型的值没有成员组件ComponentSeparatedByCharactersInSet 此代码来自另一个项目 该项目之前在 swift 版本 1 或 2 中有效 但不再有效 import Foundation
  • C++/STL 是否支持按属性对对象进行排序?

    我想知道STL是否支持这一点 假设我有一堂这样的课 class Person public int getAge const double getIncome const 和一个向量 vector
  • Scala 中抽象特征的语义

    我想知道使用的语义是什么abstract关键字与 a 组合trait is 如果该特征没有定义任何抽象方法 则abstract关键字不会阻止我创建实例 scala gt abstract trait T defined trait T sc
  • 未解析的外部符号——模板类[重复]

    这个问题在这里已经有答案了 可能的重复 C 模板 链接错误 https stackoverflow com questions 1353973 c template linking error 我正在尝试实现选择排序 但我不断收到错误 打印
  • 加载 VTT 文件时出现跨域错误

    我刚开始在 HTML 5 中使用音频标签 并且想要构建一个播放器 我想在轨道标签中使用 VTT 文件进行测试 看看隐藏式字幕如何工作 这是我的代码
  • 如何异步加载CSS

    我正在尝试消除 2 个在我的网站上出现渲染阻塞的 CSS 文件 它们出现在 Google Page Speed Insights 上 我采用了不同的方法 但没有一个成功 不过最近我发现了一个帖子异步思考 https css tricks c
  • RxSwift + UITableViewCell如何获取heightForRowAt中的单元格对象

    我有一个带有 UITableView 的视图控制器 表数据使用 RxSwift 填充 let observable Observable just data observable bindTo tableView rx items cell