Swift 中集合视图的横向方向

2023-12-14

我的集合视图单元格遇到横向问题。当应用程序处于纵向时,它为我提供每行正确的单元格数量,即 2。但是当我将应用程序旋转到横向时,它每行显示 1 个单元格。这是我得到的屏幕:

Portrait: enter image description here

Landscape: enter image description here

这是我添加单元格大小的代码:

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {

        var screenSize = CGFloat()
        if UIDevice.currentDevice().orientation.isLandscape.boolValue {
            screenSize = UIScreen.mainScreen().bounds.size.width
        }
        else {
            screenSize = UIScreen.mainScreen().bounds.size.width
        }

        let cellWidth = screenSize / 2.0

        return CGSizeMake(cellWidth, cellWidth)
    }

这是你可以做的

let orientation = UIApplication.sharedApplication().statusBarOrientation
if(orientation == .LandscapeLeft || orientation == .LandscapeRight)
{
    return CGSizeMake((yourCollectionView.frame.size.width-10)/2, (yourCollectionView.frame.size.height-10)/2)
}
else{
    return CGSizeMake((yourCollectionView.frame.size.width-5)/2, (yourCollectionView.frame.size.height-10)/3)
}

此代码实现的效果:- 如果您的视图是纵向的,您将看到 2 列和 3 行,如果您的视图是横向的,您将看到 3 列和 2 行。您在代码中看到的扣除是两个连续单元格之间的间距。因此,如果有 3 列,则扣除为 15,如果有 2 列,则扣除为 10,假设两个单元格之间的间距为 5。行也是如此。

如果需要,您也可以使用屏幕尺寸,但我的集合视图中有自动布局约束以匹配屏幕尺寸,因此结果相同。我希望这就是您正在寻找的。

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

Swift 中集合视图的横向方向 的相关文章

  • 为什么我们在 @synchronized 块中传递 self ?

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

    我正在尝试使 Objective C 委托协议更漂亮以便在 Swift 中使用 但我在弄清楚如何使用时遇到了一些麻烦NS SWIFT NAME 是否可以使用NS SWIFT NAME指定 Swift 名称中与 Objective C 关键字
  • 自动调整大小完成后如何获取帧大小

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

    var posinonY Float Float y Float pipeDown size height Float verticalPipeGap pipeDown position CGPointMake 0 0 Float posi
  • Firebase 连接管理器应仅返回一个结果

    我正在关注位于以下位置的文档 https www firebase com docs ios guide offline capability html section connection state https www firebase
  • iOS 4.2.1 丢失文件?

    这是我第一次使用最新的 xcode 3 2 5 和新的 iOS 4 2 1 当我在设备上运行应用程序时 我收到以下运行时错误 无法读取 Developer Platforms iPhoneOS platform DeviceSupport
  • 使用 UIActionSheet 更改视图时工具栏项目消失

    当从 a 启动视图时UIActionSheet按钮 通过导航栏后退按钮返回视图后 工具栏虽然仍然可见 但上面没有任何以前的按钮 自从更新到 iOS 6 以来 这个错误就出现了 并且是在模拟器和仅运行 iOS 6 的设备上测试时发生的 如果我
  • 在 iOS 中录制音频并永久保存

    我制作了 2 个 iPhone 应用程序 可以录制音频并将其保存到文件中并再次播放 其中之一使用 AVAudiorecorder 和 AVAudioplayer 第二个是苹果的在这里说话 http developer apple com l
  • WebGL iOS 渲染为浮点纹理

    我正在尝试在 iOS Safari 上的 WebGL 中渲染浮点纹理 而不是在本机应用程序中 我已经设法让 iOS 读取手动 例如从 JavaScript 创建的浮点纹理 但是当我创建浮点类型的帧缓冲区并使用 GPU 渲染到其中时 它不起作
  • Swift 对异步编程有什么语言级别的支持(如果有)?

    当应用程序必须通过不可预测的网络 例如智能手机应用程序 进行通信时 异步编程对于响应式用户界面来说是必须的 用户界面必须保持响应 同时等待结果从互联网上某处的服务器返回 在大多数语言中 应用程序程序员必须实现自己的状态机 可能使用闭包 来响
  • UIBezierPath 的起始和结束角度?

    我在 iOS 中使用如下代码编写了半圆UI贝塞尔路径 and CAShape层 clockWiseLayer CAShapeLayer alloc init CGFloat startAngle M PI 2 CGFloat endAngl
  • Swift -boundingBox 导致 EXC_BAD_ACCESS (代码 = 1)

    我正在使用 SceneKit 来显示文本节点 这是我的代码 foo swift extension SCNNode func getNodeSize gt width Float height Float let min max bound
  • 从 RemoteIO 保存音频的示例?

    我进行了搜索 但没有找到任何从 RemoteIO 音频单元保存音频的好示例或教程 我的设置 使用 MusicPlayer API 我有几个 AUSamplers gt MixerUnit gt RemoteIO 音频播放效果很好 我想添加将
  • 如何将十六进制数组转换为 UIImage?

    有几个与使用 P25mi 动态打印图像相关的未解答问题 没有一个得到公认的答案 下面有几个链接 如何将图像转换为位图代码以便在 iPhone 中进行蓝牙打印 https stackoverflow com questions 1383828
  • iPad 3 中配备 Xcode 4.2 和 Retina 的 iOS 5.1

    我有一台装有 Mac OS X Snow Leopard 的 Mac 我可以添加 iOS 5 1 吗 使用 iPad 3 的新分辨率 我们将如何处理图像 因为如果该应用程序将在 iPhone 3GS 4 和 iPad 3 中运行 我认为我们
  • 维护 UISegmentedControl 中的选择

    我可以保持 UISegmentViewControl 段的选定状态吗 即 即使用户选择了另一个段 也可以保持一个段显示为选中状态 我似乎在任何地方都找不到任何可以做到这一点的东西 这是不可能开箱即用的 看如何才能选择 UISegmented
  • 具有多种自定义单元格类型的 RxSwift 表视图

    我想知道是否有任何代码示例RxSwift当我可以在一个表视图中使用多个自定义单元格时 例如 我有两个部分 第一部分有 10 个单元格 类型为CellWithImage标识符和第二部分有 10 个带有类型的单元格CellWithVideo标识
  • 应用未能及时恢复

    我在一个非常具体的场景中遇到 未能及时恢复 崩溃 我认为与看门狗相关 仅在从后台恢复时 并且仅在进入后台后在很短的时间内执行此操作 a最多几秒钟 这似乎是相关的崩溃日志 Incident Identifier E30F2238 5B15 4
  • 播放(非库)Apple Music 内容 - 请求失败

    我正在尝试使用以下代码播放专辑 let predicate MPMediaPropertyPredicate value 1459938538 forProperty MPMediaItemPropertyAlbumPersistentID
  • 通用类不会将委托调用转发给具体子类

    鉴于以下情况 protocol EntityType var displayString String get extension String EntityType var displayString String return self

随机推荐

  • 在 Visual Studio 中安装/连接后,实体框架连接到 SQL Server Express 时出错

    为了以防万一我做错了什么 我上传了一个视频 这样你就可以看到我所做的每一步 我能够重现这个错误 视频链接 基本上 启动一个新的 MVC 3 项目并在一个简单的类上以正常方式使用 EF 我使用了以下连接字符串
  • mysql事务(提交和回滚)

    下面是我用于 MySqlTransaction 的代码 它运行完美 但问题是 因为我使用的是 mysqlcommand 的单个实例 所以我必须在其中使用唯一的参数 这毁了我的查询 有没有其他办法可以做 我尝试在每次查询后处理 cmd 但没有
  • 在 C# 中将参数传递给水晶报表的步骤

    你能告诉我在 C win 形式中向水晶报表 13 传递参数的步骤是什么吗 my code getting and set dataset to report string sql select from dbo Trading Order
  • Javascript:四舍五入 100 [重复]

    这个问题在这里已经有答案了 我正在尝试将数字四舍五入到 100 Example 1340 should become 1400 1301 should become 1400 and 298 should become 300 200 sh
  • 使用 Scope_Identity() 的正确方法/位置

    我的一个字段中有一个名为 deviceID 的自动递增 ID 我想将其传递给 php 中的会话以供稍后使用 并计划使用scope identity 据我了解 这是获取当前主键 ID 的最佳方法 然而 每当我尝试使用它时 我都会收到一条错误消
  • 在键上加入 Spark 数据帧

    我构建了两个数据框 我们如何连接多个 Spark 数据帧 例如 PersonDf ProfileDf与一个共同的列personId作为 键 现在我们如何才能将一个 Dataframe 组合起来PersonDf and ProfileDf 使
  • Chrome 全屏 API

    根据本文Google Chrome 15 具有全屏 JavaScript API 我试图让它发挥作用但失败了 我也找过官方文档无果 全屏 JavaScript API 是什么样的 该API仅在用户交互期间起作用 因此不能被恶意使用 尝试以下
  • 如何编写 C# 函数以接受可变数量的参数?

    我有一个 C 方法 我想用它来更新一些数据 该方法可以传递一个字符串 一个双精度数 一个整数 public void Update string ac string pr string fld Int32 intVal null doubl
  • 如何从方法内显示 UIActivityIndi​​catorView 并开始为其设置动画

    我有一个执行耗时操作的方法 例如连续十次调用 NSString alloc initWithContentsOfURL u 我想要一个在方法调用之前处于隐藏状态的 UIActivityIndi catorView 来显示和动画 所以我写 a
  • 刷新 dat.gui 变量

    这是 dat gui 界面中的下拉列表 一旦您单击任何数字 跳转切换器将是您选择的任何数字 我正在尝试根据用户选择的内容替换与其特定号码相关的每个列表Starsystem So solPlanets Ilos Tuchanka Illium
  • SQLException:结果集开始之前

    ResultSet rs rs this orderedProduct select sum unitstoproduce soNo soNo int sum Integer parseInt rs getString 1 当我尝试在 ja
  • Azure webjob 功能有单独的计划吗?

    是否可以为 Azure Web 作业中的各个非触发功能设置单独的计划 我之所以这么问 是因为我有六个单独的任务 我想在一天中的不同时间以不同的时间间隔运行 并且不想为每个任务创建单独的项目 是的 您可以使用TimerTriggerAttri
  • 如果 findFirst() 找到的第一个元素为 null,为什么会抛出 NullPointerException?

    为什么这会抛出一个java lang NullPointerException List
  • 运行时错误和编译器错误有什么区别? [复制]

    这个问题在这里已经有答案了 在我的一张关于多态性的教授幻灯片中 我看到这段代码带有一些注释 discountVariable will produce DiscountSale saleVariable run time error dis
  • 从 pandas 的日期时间列中减去年份

    我有一个日期时间列如下 gt gt gt df ACC DATE head 2 538 2006 04 07 550 2006 04 12 Name ACC DATE dtype datetime64 ns 现在 我想从此列的每一行中减去一
  • 凯拉斯 TPU。编译失败:检测到不支持的操作

    我尝试使用 Google Colab TPU 运行我的 keras UNet 模型 但遇到了这个问题UpSampling2D 有什么解决方案或解决方法吗 要运行的代码 import os import numpy as np import
  • 通知未被忽略 (Android)

    如果单击操作 通知 setAutoCancel true 不起作用 我有一个通知 其中包含一个操作 当我点击通知时 它将从列表中删除 但是 当我单击 操作 时 它成功完成了 操作 即进行呼叫 但当我返回到通知列表时 它仍保留在那里 Alar
  • 如何在 HTTP 重定向上转发标头

    我正在编写一个响应 HTTP 重定向的 Web 应用程序 有没有办法强制客户端将我在响应中包含的标头转发到新网址 请求示例 POST insertion HTTP 1 1 Content Length 9 content 网络应用响应 HT
  • 在 OpenModelica 中模拟闭式液压循环

    我想对一个封闭的液压循环进行建模 正如人们可以在 Modelica 标准库 流体 示例 加热系统中找到的那样 对于供暖系统以及我的 简约 示例 我遇到了同样的问题 系统是超定的 在接下来的讲座中 您可以发现加热系统是一个 坏例子 所以我想这
  • Swift 中集合视图的横向方向

    我的集合视图单元格遇到横向问题 当应用程序处于纵向时 它为我提供每行正确的单元格数量 即 2 但是当我将应用程序旋转到横向时 它每行显示 1 个单元格 这是我得到的屏幕 Portrait Landscape 这是我添加单元格大小的代码 fu