问题标签 [nscollectionviewflowlayout]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 带有 NSCollectionView 的全宽 NSCollectionViewFlowLayout
我有一个NSCollectionViewFlowLayout
包含以下内容:
我已经尝试过使布局响应的方法(在调整大小时设置宽度)。我尝试添加以下内容:
如果我扩展集合视图(调整更大),这会很好。但是,如果我尝试折叠视图(缩小尺寸),则会出现以下异常:
关于如何解决这个问题的任何建议?
注意 1:这是 macOS 而不是 iOS(即使错误消息指出 UICollectionViewFlowLayout)。
注意 2:即使我收到警告/错误,布局宽度仍然有效,但我想找出根本问题。
swift - NSCollectionViewFlowLayout collectionViewContentSize 更新但集合视图框架不更新
我有多个自定义 NSCollectionViewFlowLayouts,其中一些具有垂直方向,另一些具有水平方向。
设置水平布局时,集合视图框架会根据内容正确设置高度和宽度,但是当我将布局更新为垂直布局时,框架会保持以前的布局内容大小。
用鼠标手动调整窗口大小会导致布局正确显示,但我不确定为什么这不能以编程方式正确更新。正确的大小是从布局内容大小中调用的,在 WWDC 的“NSCollectionViews 的新功能”演示文稿中,您可以看到这不是问题。
同样的问题可以在 Apples 2015 WWDC 中看到https://developer.apple.com/library/prerelease/mac/samplecode/CocoaSlideCollection/CocoaSlideCollectionUsingNSCollectionViewonOSX10.11.zip中的 NSCollectionViews 示例项目的新增功能
在包裹布局和圆形布局之间切换时,您最初会看到高度不正确,反之亦然。
我不确定这是否是一个错误,或者我是否在实现中遗漏了任何内容。
更新:这看起来是一个操作系统错误,暂时我们不得不解决这个问题。在此处发布,以便其他人可以看到中间解决方案,或者可能根据上述描述建议其他人。(https://github.com/zenangst/Blueprints/pull/93)
cocoa - 具有使用自动布局的动态宽度项目的 NSCollectionView
我正在构建一个NSCollectionView
水平滚动的项目,看起来像这样:
我NSCollectionView
在具有自动布局约束的 .xib 中定义了我的项目。项目的宽度由标签的宽度加上计数标签(及其周围的药丸)的宽度定义。所有这一切都被一个NSView
称为“盒子”的封装。
以下是 Box 的约束:
我已经连接了我的数据源,一切看起来都很好,只是我无法根据其中的视图大小来改变项目的宽度。
根据我的阅读,我不能仅仅依靠自动布局来定义这里的大小(我希望我错了),就像我在NSTableView
. 所以我试图用sizeForItemAt
委托方法计算大小NSCollectionViewDelegateFlowLayout
:
当我打印fittingSize
到控制台时,它看起来是正确的。但是我遇到了Unable to simultaneously satisfy constraints
与 Box 大小有关的崩溃(它有一个子类RoundedWrap
):
如果我删除将 Box 的后沿固定到包含视图的约束,崩溃就会消失,但是我的NSCollectionView
项目根本不会出现。
有没有更简单的方法来完成这一切?如何使用自动布局来设置我NSCollectionViewItem
的 s 的动态宽度?
cocoa - NSCollectionViewAttributes 未与自定义 NSFlowLayout 子类正确应用
我目前正在NSCollectionView
使用自定义布局。为此,我NSCollectionViewFlowLayout
对我的项目进行了子类化以顶部对齐(它们都有固定的宽度,这使得算法非常容易)。我现在遇到的问题是只有我的集合视图中的前九个项目才能正确显示,即顶部对齐。
当最初显示集合视图时,这前九个项目至少部分可见。向下滚动集合视图时出现的其他项目将在没有任何顶部对齐的情况下绘制,只是垂直居中每行作为NSCollectionViewFlowLayout
. 通过广泛的日志记录,我可以验证我的布局仅提供NSCollectionViewLayoutAttributes
正确修改的顶部对齐。
当我调整包含 的窗口的NSCollectionView
大小,从而调整集合视图本身的大小时,它的可见部分中的所有项目将突然正确显示。
我错过了什么?
这是我的自定义子类: