collectionViewContentSize() 与 contentSize

2024-03-30

有什么区别

collectionViewController.collectionViewLayout.collectionViewContentSize() and collectionViewController.collectionView.contentSize ?

您更喜欢使用什么?


contentSize是一个属性UIScrollView, 然而collectionViewContentSize()是一种方法UICollectionViewLayout.

Reading iOS 7 编程,第四版 http://shop.oreilly.com/product/0636920031017.do,同时总结UICollectionViewLayout,作者指出:

集合视图的布局主力类。集合视图 没有布局实例就不可能存在!正如我已经说过的, 布局知道所有子视图占用多少空间,并且供应 collectionViewContentSize 设置集合的 contentSize 视图,滚动视图。

根据个人经验,我在使用时遇到了困难layout.collectionViewContentSize()。控制台显示以下警告,或者布局最初显示不正确。

the behavior of the UICollectionViewFlowLayout is not defined because: the item height must be less than the height of the UICollectionView minus the section insets top and bottom values.

我的猜测是collectionViewContentSize()不仅仅返回内容大小。我认为调用它实际上会启动布局计算。如果 -在这些计算过程中- 检测到异常,然后输出显示的警告。

对于我在 iPad 上进行的测试并通过 Xib 启动集合视图来说,Xib 的框架是 iPhone 大小的。初始通行证触发自viewDidLayoutSubviews正在处理小视图。检查集合视图的框架,它was太小。随后的布局引擎最终传递了正确的尺寸,但那时警告已经显示了。

接下来,我尝试将 Xib 框架做得更大。这消除了错误,但导致了更严重的问题;布局最初是错误的。在滚动时,您会看到随着布局重新计算到正确的尺寸,项目会四处跳跃。

答案可能是打电话invalidateLayout(),但我不确定在哪里。我在实例化集合视图后尝试过,但没有成功。

那么,答案是什么呢?我用了内容大小。初始传入viewDidLayoutSubviews仍然显示不正确的尺寸,但最终会正常。它不会生成任何控制台警告,更好的是,不会根据旧的帧大小触发任何错误的布局。更好的是,旋转是自动处理的viewDidLayoutSubviews将被自动调用,此时内容大小将被更新。

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

collectionViewContentSize() 与 contentSize 的相关文章

  • 选择 UITableViewCell 时 UIView 背景颜色消失

    我在界面生成器中构建了一个简单的 tableViewCell 它包含一个包含图像的 UIView 现在 当我选择单元格时 会显示默认的蓝色选择背景 但 UIView 的背景颜色消失了 我的 UITableViewCell 的实现文件没有做任
  • iOS 13 检查 CLLocationManager 的临时授权状态

    根据 WWDC 视频 https developer apple com videos play wwdc2019 705 https developer apple com videos play wwdc2019 705 当你要求 Al
  • iPhone SQLite页面缓存不断增长

    I use sqlite数据库用于存储 还有许多数据库事务 我的问题是 sqlite 页面缓存的内存使用量快速增长 在instruments我可以找到这条线 Graph Category Live Bytes Living Transien
  • 如何组合两个 SwiftyJSON 对象

    我有一个 swiftyJSON 对象 例如 location http img http commentCount 0 timestamp 1432460217550 我希望能够向其附加另一个 swiftyJSON 对象 使其看起来像 lo
  • 使用自动布局、IB 和字体大小时表头视图高度错误

    我正在尝试为我的 uiTableView 创建一个标题视图 不是节标题 我已经有了 我已经在界面生成器中设置了一个 XIB 所有的连接都已连接好并且运行良好 除了桌子没有给它足够的空间 我的问题是表格顶部与表格标题有一点重叠 我的 XIB
  • 使用 Quartz 创建 PDF 注释 (iOS)

    有人设法使用 Quartz 在现有 PDF 中编写自定义注释吗 我已经使用 CGPDFDocumentRef 等渲染了 PDF 现在工作正常 我成功地阅读了 Annots 字典 if CGPDFDictionaryGetArray page
  • 如何编辑应用程序包中的文件?

    在我的应用程序中 我从存储在捆绑资源中的 CSV 文件加载数据 但是 我希望能够在用户点击 更新 按钮时以编程方式更新此文件 有没有办法以编程方式更改应用程序包中的资源 这是我用来访问该文件的代码 NSString path NSBundl
  • 在 JavaScript 中检测页面是否加载到 WKWebView 中

    如何使用 javascript 可靠地检测到页面已加载到 WKWebView 中 我希望能够检测到这些场景 iOS 和 WKWebView iOS 和 Safari not iOS 关于 UIWebView 有一个类似的问题here htt
  • 如何使用 Swift 将“完成”按钮添加到 iOS 中的数字键盘?

    它在默认键盘上工作得很好 但我无法让它在数字键盘上工作 有任何想法吗 据我所知 你不能在键盘部分添加 完成 按钮 你应该添加一个inputAccessoryView to the UITextField or UITextView 如果这就
  • TTTAttributedLabel 可点击截断标记

    我有一个 TTTAttributedLabel 并为其指定了一个自定义属性截断标记 NSAttributedString atributedTruncationToken NSAttributedString alloc initWithS
  • Swift:协议、结构、类

    我开始学习 Swift 语言 但在理解协议 结构和类方面遇到了困难 我来自 Android 方面的编程 所以我相信 Swift 协议基本上是 Java 接口 其中每一个的正确用例是什么 这些类比并不 完全 正确 但这就是我所理解的要点 是的
  • 使用 ZBarSDK 时 iPhone 相机失去自动对焦功能

    我正在开发一个应用程序 用户可以选择是否要扫描条形码或拍摄某物的照片 为了拍照 我正在使用UIImagePickerController照常 为了扫描条形码 我使用 ZbarSDK 1 2ZBarReaderViewController 拍
  • cameraOverlayView 防止使用 allowedEditing 进行编辑

    在我的应用程序中 使用以下行在拍摄照片后对其进行编辑 移动和缩放 效果很好 imagePicker setAllowsEditing YES 但如果我还使用cameraOverlayView 则编辑模式将不再起作用 屏幕出现 但平移和捏合手
  • removeItemAtPath 完成

    我正在以这种方式删除路径上的文件 UIPanGestureRecognizer gesture UIPanGestureRecognizer sender UIButton button UIButton gesture view UIPa
  • XCode 7 中的 AWSS3TransferManagerUploadRequest

    我今天升级到 Xcode 7 Swift 2 0 我的项目正在使用 CocoaPods 我正在 POD 文件中导入所有与 AWS 相关的文件 我已经设置了桥接标头 并导入了 Amazon 告诉我的所有文件 在升级到 Swift 2 0 之前
  • 如何在Sprite Kit中实现鼠标关节?

    我已经在 iOS 上用 Cocos2d Box2d 编写了拖放功能的工作实现 我需要将它移植到 Sprite Kit 逻辑非常基本 当用户触摸屏幕时 找到手指下的精灵 在找到的精灵和场景的物理体之间创建鼠标关节 将关节的目标设置为触摸位置
  • iOS Swift 和 reloadRowsAtIndexPaths 编译错误

    我与 xCode Swift 陷入僵局并刷新 UITableView 的单行 这条线有效 self tableView reloadData 而这条线没有 self tableView reloadRowsAtIndexPaths curr
  • 如何在 iOS 上固定证书的公钥

    在提高我们正在开发的 iOS 应用程序的安全性时 我们发现需要对服务器的 SSL 证书 全部或部分 进行 PIN 操作以防止中间人攻击 尽管有多种方法可以做到这一点 但当您搜索此内容时 我只找到了固定整个证书的示例 这种做法会带来一个问题
  • 动画 UICollectionView 单元格大小更改并重新定位周围单元格

    Goal 以动画方式改变单元格的高度并重新定位周围的单元格 设想 集合视图中的某些单元格会加载远程图像 最初 这些单元格的大小是静态的 并显示活动指示器 加载图像后 会将其添加到其单元格中 并且更改单元格的高度以适合照片 Notes 我正在
  • 领域:结果 和列表

    是否可以转换Results

随机推荐

  • HammerJS 滑动与 Mat-Tabs 阻止垂直滚动

    所以我的 Angular 应用程序中有一个组件 其中包含数据类别的选项卡以及选项卡内容的值数组 我想使用 HammerJS 在选项卡之间滑动以获得更原生的体验 我还安装了这个虚拟滚动包 https github com rintoj ang
  • 网站管理员 API - 配额限制

    我们正在尝试通过调用使用 Webmasters API NET 客户端库下载网站的页面数据WebmastersService SearchAnalytics Query 为此 我们正在使用Batching https developers
  • 通过匹配其他数组来更改对象属性的位置

    我有一个对象 var data D 1 AA Changes xml This is a string D 2 Compare AA Changes xml This is a string 我需要将该属性与我拥有的另一个数组相匹配 如下所
  • Flutter Video Player On Click 传递 URL 动态并加载视频进行播放

    下面附有视频播放器的示例屏幕 https i stack imgur com PoeyX png如何使视频播放器动态播放 同时通过传递视频 URL 来单击列表播放视频 单击时我已经传递了 URL 并尝试重新初始化并开始播放它不起作用 状态没
  • VHDL - 为什么直接在函数上使用长度属性会产生警告?

    我有一个 VHDL 函数 它返回记录的 std logic vector 表示形式 并且我想要该 std logic vector 的长度 我可以直接在函数上使用长度属性 为什么这会在 ModelSim 中产生警告 我是否会引发一些微妙的问
  • 为什么“www.example.com”与“example.com”不同?

    我有一个网站 如果我登录这种格式的域http example com http example com然后将我的地址更改为http www example com http www example com 我发现我的帐户没有登录 如果我将地
  • Android + ListView背景在滚动时设置背景?

    我有一个通过 ArrayAdapter 填充的 ListView 在适配器中 我根据条件设置视图背景颜色 它有效 但是在滚动时其余行采用这种颜色 这是一些代码 class DateAdapter extends ArrayAdapter
  • 使用 python 连接到 Flask websocket

    我想做的事情可能是不可能的 但事情就这样了 我已经使用 Flask 一段时间了 并使用 Flask socketio 创建了几个测试 允许用户在通过 Web 浏览器访问页面时立即进行通信 然而 我想知道当使用套接字模块从 Python 本身
  • 如何在 iPhone 上的 UITableView 中设置单元格的背景颜色?

    如何设置 UITableView 中单元格的背景颜色 Thanks 我知道这是一篇旧帖子 但我确信有些人仍在寻求帮助 您可以使用它来设置单个单元格的背景颜色 该颜色首先起作用 UITableViewCell tableView UITabl
  • 在 Swift 2.0 中更改 AVAudioPlayer 的速率变量时声音失真

    我正在开发一个简单的音频播放应用程序 它大约有 10 个音频文件 每个文件的正常播放速度为每分钟 100 节拍 用户可以输入一个节奏变量 70 到 140 b p m 之间 该变量在调用 play 函数之前被分配给 tempo 100 AV
  • “setHasOptionsMenu(Boolean): Unit”已弃用。在 Java 中已弃用

    如何在 Android 片段中声明菜单 我以前使用的方法现在已被弃用 起初 override fun onCreateView View setHasOptionsMenu true override fun onCreateOptions
  • 标题中有多行的粘性标题表

    所以我能够创建一个粘性标题表并且它工作正常 问题是我需要制作另一个带有多行标题的表 而我到目前为止使用的方法不起作用 正如您在下面的代码中看到的那样 table wrapper position relative overflow y au
  • Javascript setTimeout 立即在 React Native 中运行

    我的问题是 setTimeout 运行 about 5 seconds早些时候 例如 当我将其设置为5 seconds 它立即运行 但是当我在15 seconds 它将运行大约10 seconds later 我什至调查了这个问题 Reac
  • Django 信号仅在 debug=True 时有效,DJANGO 3.2.4

    我一直在到处寻找 但找不到任何关于此的参考 我的 Django 模型信号仅在 debug True 时才起作用 但如果 debug False 则不起作用 这种情况在本地主机和生产服务器上都会发生 我的设置如下所示 设置 py from p
  • 使所有峰在Matlab中清晰可见

    我终于解决了我的问题here https stackoverflow com questions 20777252 to apply window function on wigner ville distribution in matla
  • 如何正确使用 Html.Raw(Json.Encode(Model)) ?

    我正在尝试使用以下代码对我的 MVC 模型进行编码 但警报消息给了我一个空值 我不确定为什么它给我一个空值 因为这是一个创建表单 我正在尝试从中创建一个模型 我的 html 代码具有以下外观 using Html BeginForm Htm
  • 带有自定义标题、描述和图像的 Facebook 分享按钮[重复]

    这个问题在这里已经有答案了 可能的重复 Facebook Sharer 如何选择图像 https stackoverflow com questions 1138460 how does facebook sharer select ima
  • Angular 2在路由中排除url

    我已经使用角度实现了路由 如下所示 export const routes RouterConfig path component HomeComponent path component SearchComponent 我需要匹配所有默认
  • 修改二维 ruby​​ 数组有困难

    新手问题请见谅 我正在尝试在 ruby 中创建一个二维数组 并将其所有值初始化为 1 我的代码可以很好地创建二维数组 但无法修改其任何值 谁能解释我做错了什么 def mda width height make a two dimensio
  • collectionViewContentSize() 与 contentSize

    有什么区别 collectionViewController collectionViewLayout collectionViewContentSize and collectionViewController collectionVie