swift - 具有垂直和水平能力的 NSCollectionView
问题描述
我正在使用 NSCollectionView 制作一个列表。它可能包含许多列和行。看来我只能垂直或水平滚动视图。样本
我理解的痛点是,CollectionView 内容大小的宽度会自动设置为滚动视图中文档视图的宽度。但是对于其他类型的视图,例如 NSImageView,大小不会被调整。
这是代码
import Cocoa
class ViewController: NSViewController {
override var representedObject: Any? {
didSet {
}
}
var titles = [String]()
var collectionView: NSCollectionView?
override func viewDidLoad() {
super.viewDidLoad()
setup()
}
func setup(){
self.titles = ["Banana", "Apple", "Strawberry", "Cherry", "Pear", "Pineapple", "Grape", "Melon"]
collectionView = NSCollectionView()
collectionView!.itemPrototype = CollectionViewItem()
collectionView!.content = self.titles
collectionView?.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
(collectionView?.widthAnchor.constraint(equalToConstant: 2000))!,
(collectionView?.heightAnchor.constraint(equalToConstant: 2000))!
])
collectionView?.setFrameSize(NSSize(width: 2000, height: 2000))
var index = 0
for title in titles {
var item = self.collectionView!.item(at: index) as! CollectionViewItem
item.getView().button?.title = self.titles[index]
index = index + 1
}
var scrollView = NSScrollView(frame: NSRect(x: 0, y: 0, width: 400 , height: 200))
let clipView = scrollView.contentView
scrollView.backgroundColor = NSColor.red
scrollView.documentView = collectionView
self.view.addSubview(scrollView)
}
}
解决方案
推荐阅读
- python - 如何解决:UnboundLocalError:赋值前引用了局部变量't'?在蟒蛇?
- amazon-ec2 - 使用 ec2_metric_alarm 时获取“AlarmName 不得包含前导或尾随空格”
- flutter - Flutter 实现方法:点击拍照长按录制
- ios - 如何停止在导航上旋转地图?在这里 iOS SDK
- python - 如何使用 python 3.x 而不是 python 2.7.9 安装 praw
- c# - 如何根据 asp.net core 中 AutoMapper 中的用户角色有条件地映射/忽略属性
- javascript - 当 redux 存储更新时 mapStateToProps 不更新
- ruby-on-rails - 安装插件 redmineup_tags 时出现错误缺少帮助文件 helpers/tags_helper.rb
- validation - Laravel 验证 required_if 不起作用
- php - 在 PHP 中将两个 API 组合成一个数组