如何处理 UICollectionView CompositionalLayout 中的空项目部分

2024-05-04

我正在尝试使用具有多个部分的组合布局制作集合视图

但如果部分中有空项目我该如何处理?

如果项目为空,我不想显示该部分

UICollectionViewCompositionalLayout { (section, env) -> NSCollectionLayoutSection? in
  // do I have to code in this area? 
}

如果您也在使用UICollectionViewDiffableDataSource https://developer.apple.com/documentation/uikit/uicollectionviewdiffabledatasource,您可以在创建/更新快照时处理空部分 - 仅附加其中包含项目的部分。

在我的项目中我做了这样的事情:

func performQuery(animate: Bool) {
    var currentSnapshot = NSDiffableDataSourceSnapshot<Section, ViewCell>()
    
    if !calendars.isEmpty {
        currentSnapshot.appendSections([Section(name: "main")])
        currentSnapshot.appendItems(calendars, toSection: Section(name: "main"))
    }

    if !lifeCals.isEmpty {
        currentSnapshot.appendSections([Section(name: "life")])
        currentSnapshot.appendItems(lifeCals, toSection: Section(name: "life"))
    }
    
    dataSource.apply(currentSnapshot, animatingDifferences: animate)
}

这样,如果用户的生活日历为 0,则不会有“生活”部分。

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

如何处理 UICollectionView CompositionalLayout 中的空项目部分 的相关文章

  • Swift 3 '[UIApplicationLaunchOptionsKey:任意]?'无法转换为 '[String : NSString]'

    我有一个 TVOS 应用程序已从 Swift 2 转换为 Swift 3 但出现以下错误 我不确定如何让它安静下来 UIApplicationLaunchOptionsKey 任意 无法转换为 String NSString 它出现在这段代
  • 在 iOS 中管理和解除多个视图控制器

    我是一名 iPhone 新手程序员 在开发我的第一个游戏 应用程序时 我为自己提出了一个问题 创造了一个问题 我对此进行了研究 并认为我已经看到了答案 但我不明白如何使它们适用于我的应用程序 我有一个游戏 有几个视图控制器 欢迎 玩 高分
  • Swift 中的弹出视图

    我有一个弹出视图 没有选项卡栏 它弹出到带有选项卡栏的视图控制器 在带有选项卡栏的视图控制器中 我设置了一个单击按钮 以便弹出视图控制器 IBAction func PopUpClicked sender UIButton gt Void
  • 使用 JavaScript 从 URL 变量读取来加载不同的 CSS 样式表

    我试图在我的 WordPress 博客上使用两个不同的样式表 以便在通过 Web 访问页面时使用一个样式表 而在通过我们的 iOS 应用程序访问博客内容时使用另一个样式表 现在 我们将 app true 附加到来自 iOS 应用程序的 UR
  • 为什么我们在 @synchronized 块中传递 self ?

    我猜 synchronized 块不依赖于对象 而是依赖于线程 对吗 既然如此 我们为什么要传递 self 呢 synchronized是语言提供的用于创建同步作用域的构造 因为使用简单的全局共享互斥锁效率非常低 因此序列化每个单独的互斥锁
  • 我可以在 NS_SWIFT_NAME 中使用保留关键字吗?

    我正在尝试使 Objective C 委托协议更漂亮以便在 Swift 中使用 但我在弄清楚如何使用时遇到了一些麻烦NS SWIFT NAME 是否可以使用NS SWIFT NAME指定 Swift 名称中与 Objective C 关键字
  • 如何在 Swift 中使用 substringToIndex? [复制]

    这个问题在这里已经有答案了 我在这一行收到编译器错误 UIDevice currentDevice identifierForVendor UUIDString substringToIndex 8 类型 String Index 不符合协
  • 自动调整大小完成后如何获取帧大小

    我想知道 如何以及何时 viewDidLoad viewWillAppear viewDidAppear 可以获得自动调整大小以适合其父视图的 UIViews 框架大小 从你的问题中不清楚你为什么想要它 但我想这是为了布局你的子视图 幸运的
  • 新的 FUITableViewDataSource - 如何使用?雨燕3

    刚刚更新到较新的 FirebaseUI Pod 有些事情发生了变化 但其中最大的变化之一是 FUI 表视图的工作方式 我让它在旧版本上运行良好 但在下面遇到了困难 并且缺乏文档 示例 self dataSource FUITableView
  • iOS 解决方案仅当图像尚未使用 SDWebImage 缓存在内存中时才加载带有动画的图像

    我已经为这个问题苦苦挣扎了几天 以前我使用 AFNetworking 类别来加载和缓存图像 但它的回调中没有提供缓存类型 所以我过去常常在每个控制器中跟踪哪些图像已经加载 我浏览了 SDWebImage 它提供了我正在寻找的东西 SDIma
  • 使用 UIImagePickerController 的应用程序在拍照后选择“使用照片”时冻结

    我现在正在开发一个简单的照片和视频捕获应用程序 该应用程序成功地允许用户按下按钮即可拍摄照片或视频 但是 一旦您完成拍摄照片或视频 它就会提供 2 个选项 重新拍摄 和 使用照片 或 使用视频 具体取决于您使用的选项 如果用户点击 重新拍摄
  • 使用隐藏的 SFSafariViewController 获取 Safari cookie

    我正在阅读以下关于从移动网页到本机 iOS 9 应用程序对用户进行身份验证的文章 并且想知道如何最好地实现类似于下面讨论的隐藏控制器的隐藏 safari 视图控制器 https library launchkit io how ios 9
  • iOS:从非图像数据生成图像(Godus,如风景)

    所以看到图像后Godus http www kickstarter com projects 22cans project godus我想知道如何生成简单的 非交互式的 2D 图像 with 不同高度或层数的颜色不同就像下面的图片一样 我只
  • 在 iOS 中录制音频并永久保存

    我制作了 2 个 iPhone 应用程序 可以录制音频并将其保存到文件中并再次播放 其中之一使用 AVAudiorecorder 和 AVAudioplayer 第二个是苹果的在这里说话 http developer apple com l
  • Swift 对异步编程有什么语言级别的支持(如果有)?

    当应用程序必须通过不可预测的网络 例如智能手机应用程序 进行通信时 异步编程对于响应式用户界面来说是必须的 用户界面必须保持响应 同时等待结果从互联网上某处的服务器返回 在大多数语言中 应用程序程序员必须实现自己的状态机 可能使用闭包 来响
  • Swift -boundingBox 导致 EXC_BAD_ACCESS (代码 = 1)

    我正在使用 SceneKit 来显示文本节点 这是我的代码 foo swift extension SCNNode func getNodeSize gt width Float height Float let min max bound
  • 如何在 EKRecurrenceRule 中设置一周中某一天的数组?

    我想在用户选择的特定日期每周添加事件 可以是一个或多个 也可以是一整天 我将用户选择的日期值存储在模型类变量中 但是 当我添加事件并选择日期时 假设今天是星期一 我选择星期二和星期三并保存 然后我查看周一和周三添加的 iPhone 日历 我
  • 应用未能及时恢复

    我在一个非常具体的场景中遇到 未能及时恢复 崩溃 我认为与看门狗相关 仅在从后台恢复时 并且仅在进入后台后在很短的时间内执行此操作 a最多几秒钟 这似乎是相关的崩溃日志 Incident Identifier E30F2238 5B15 4
  • iOS 发送 iMessage 尽可能简单

    我希望能够以编程方式发送 iMessage 除了调用一个将文本发送到带有消息的号码的函数之外 无需执行任何其他操作 这两个消息都是文本框 我真的很感激一些示例代码 因为我在网上搜索过 但我发现没有任何帮助 这不适用于商业应用程序 仅适用于我
  • 下标:使用字符串枚举访问我的字典值

    我想做类似的事情 使用字符串枚举访问我的字典值 我试图重载字典的下标但没有成功 访问字典 let district address JsonKeys district 其中 JsonKeys 是 enum JsonKeys String c

随机推荐

  • 如何从计算函数内部更新其他字段或其他模型?

    有3个班级 sync test subject a与有很多关系sync test subject b继承自sync test subject c sync test subject b s separated chars字段通过称为的计算函
  • 使用 NumPy loadtxt/savetxt 指定编码

    使用 NumPyloadtxt and savetxt只要涉及非 ASCII 字符 函数就会失败 这些函数主要用于数字数据 但也支持字母数字页眉 页脚 Both loadtxt and savetxt似乎正在应用 latin 1 编码 我发
  • 将文件编码为 Base 64 Nodejs

    我使用下面的代码将文件编码为 Base64 var bitmap fs readFileSync file return new Buffer bitmap toString base64 我认为在文件中我们有问题 and 字符 但它很好
  • EntityFramework 6 中的 IDbCommandInterceptor 线程安全吗

    使用 DbInterception add 方法注册时 IDbCommandInterceptor 实例是否被视为线程安全 我已经实现了一个符合 IDbCommandInterceptor 接口的类 并且正在跟踪调用其中一个执行方法时命令的
  • Firemonkey - 更新视觉组件

    我们从版本 1 开始就使用 Firemonkey 但仍然发现更新当前在屏幕上可见的组件很困难 在 Firemonkey 中请求重画的 方式 有很多 也许太多了 应用样式 ApplyStyle 事件 主要是当它在屏幕上可见时 请求 repai
  • 这是一个有效的浮点数比较,它占了一定的小数位数吗?

    我正在编写一个扩展方法来使用一组小数点 有效数字 来比较两个浮点数 以确定它们是否相等而不是容差或百分比差异 浏览有关浮动比较的其他问题 我看到了复杂的实现 我是否过于简单化了或者这是否有效
  • CA1704 - 微软似乎屏蔽了“Multi”这个词?

    public class MultiSomething CA1704 IdentifiersShouldBeSpelledCorrectly 当我运行代码分析时 我收到错误 因为 Microsoft 无法识别 Multi 一词 想想他们在I
  • Emacs:结合 isearch-forward 和 center-top-bottom

    预先非常感谢您的帮助 在 Emacs 中 我喜欢使用 iseach forward C s 但如果突出显示的字体单词位于屏幕中间而不是最底部的中心 我会更喜欢它 我发现自己不断地这样做 C s foo C s C s C s 哦 这就是我一
  • Javascript:从已实例化的对象与原型创建对象

    我有一个相当学术的问题 并不特别适用于我正在做的任何事情 我只是真的想知道答案 假设我们在全局命名空间中有一个简单的对象定义 如下所示 TestObject function 它的原型中添加了一个方法 可以实例化为新对象本身 TestObj
  • Android ListView中心选择

    我有一个 ListView 显示与搜索最接近的单词匹配 例如 如果我搜索 hi 我会在 ListView 中得到以下结果 hi hi five hi five high强调 我在用 ListView setSelection wordLis
  • 在Spark的客户端模式下,驱动程序需要网络访问远程执行程序?

    使用火花时在客户端模式 例如yarn client 运行驱动程序的本地计算机是否直接与运行远程执行程序的集群工作节点通信 如果是 是否意味着机器 运行驱动程序 需要具有对工作节点的网络访问权限 那么master节点向集群请求资源 并将wor
  • H2 中的 IF 函数用于 MySQL 兼容性

    我正在使用 H2 具有 MySQL 兼容模式 针对我们使用 MySQL 的软件编写一些自动化测试 不幸的是 H2 似乎没有IF我们的许多查询都使用该函数 除了使用 DECODE 之类的东西重写我们的应用程序查询之外 它们是创建 if 函数
  • Google Places API 上的寻呼返回状态 INVALID_REQUEST

    我正在使用 Google Place API 进行地点搜索 https developers google com places documentation search https developers google com places
  • 实体框架不查询派生类 - DbOfTypeExpression 中的错误

    我有一个基类和两个派生类 每个派生类都实现相同的类型作为属性 唯一的区别是属性名称 遗憾的是我对类设计没有太大影响 gt 它们是从 wsdl 文件生成的 然后我在 BaseType 上有一个属性来封装公共属性 计划是在我的网络视图等中使用此
  • 如何在 Angular 6 中过滤复杂结构化的 Json 数据

    我有一个复杂的结构化 json 数据 需要在我的 Angular 6 应用程序中应用高级过滤 JSON 数据 StudentId 1 StudentName Student1 Sex M Programs StudentId 1 Progr
  • 将 ActiveX Com 组件与 Node.js 一起使用。是否可以

    有没有办法将任何ActiveX com组件与nodejs一起使用 实际上 我永远不需要这个 但我在 Windows 上运行 nodejs 并尝试发送 ping 请求而不分叉新进程 Windows 不存在这样的模块 由于存在一些 Active
  • 从命令行将绑定或参数传递给 ERB

    我最近一直在从命令行使用 erb 我想制作一个非常简单的 erb 模板 例如以下内容 Hello My name is I hope your day is 如果我跑的话这有效 erb T thatfile erb 我想做的是name an
  • 每次更改工作表时运行宏

    我对宏还很陌生 每次更新 更改或其他任何操作时 我都需要在工作表上运行一些代码 这是我需要运行的代码 我怎样才能做到这一点 Sub UnMergeFill Dim cell As Range joinedCells As Range For
  • 分割具有最大字符数限制的字符串

    我试图将一个字符串拆分为许多字符串 列表 每个字符串都有最大字符数限制 假设我有一个 500 个字符的字符串 并且我希望每个字符串最多有 75 个字符 那么就会有 7 个字符串 而最后一个字符串不会有完整的 75 个字符 我尝试了在 sta
  • 如何处理 UICollectionView CompositionalLayout 中的空项目部分

    我正在尝试使用具有多个部分的组合布局制作集合视图 但如果部分中有空项目我该如何处理 如果项目为空 我不想显示该部分 UICollectionViewCompositionalLayout section env gt NSCollectio