Swift语言环境下使用init 加载自己的 xib文件

这篇博客介绍了在Swift环境下如何加载自定义的xib文件。首先,需要重写`init(nibName:bundle:)`方法,并在其中初始化 nibName 和 bundle。然后,为了方便使用,可以创建一个便利构造器`convenience init()`,它自动调用xib文件。最后,由于编译器要求,需要实现`init(coder:)`方法,但在这里用`fatalError`阻止其实现,因为该示例不涉及从故事板加载。
摘要由CSDN通过智能技术生成

1.Swift下创建xib

2.重写init(nibNameOrNil, bundleOrNil)

要让Controller能与xib关联,关键是init(nibNameOrNil, bundleOrNil)方法。既然子类没有自动继承,我们就得亲自添加相关代码。如下:

当然可以!下面是一个使用Swift语言编写的放置一张图片的水平NSCollectionView的示例代码: 首先,确保你已经导入了Cocoa框架: ```swift import Cocoa ``` 然后,创建一个自定义的NSCollectionViewItem类来展示图片: ```swift class ImageCollectionViewItem: NSCollectionViewItem { override func loadView() { super.loadView() view = NSImageView() } override var representedObject: Any? { didSet { guard let image = representedObject as? NSImage else { return } (view as? NSImageView)?.image = image } } } ``` 接下来,在你的视图控制器中,设置水平滚动的NSCollectionView: ```swift class ViewController: NSViewController, NSCollectionViewDataSource { @IBOutlet weak var collectionView: NSCollectionView! let images: [NSImage] = [NSImage(named: "image1")!, NSImage(named: "image2")!, NSImage(named: "image3")!] override func viewDidLoad() { super.viewDidLoad() let flowLayout = NSCollectionViewFlowLayout() flowLayout.scrollDirection = .horizontal collectionView.collectionViewLayout = flowLayout collectionView.dataSource = self collectionView.register(ImageCollectionViewItem.self, forItemWithIdentifier: NSUserInterfaceItemIdentifier("ImageCollectionViewItem")) } func collectionView(_ collectionView: NSCollectionView, numberOfItemsInSection section: Int) -> Int { return images.count } func collectionView(_ collectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem { let item = collectionView.makeItem(withIdentifier: NSUserInterfaceItemIdentifier("ImageCollectionViewItem"), for: indexPath) item.representedObject = images[indexPath.item] return item } } ``` 在这个示例中,我们创建了一个NSCollectionView,并使用NSCollectionViewFlowLayout来设置水平滚动。我们还实现了NSCollectionViewDataSource协议中的两个方法,用于指定项目数量和返回自定义的NSCollectionViewItem。 请确保在Storyboard或者XIB文件中将NSCollectionView连接到你的视图控制器,并设置其代理和数据源。 这样,你就可以在NSCollectionView中放置一张图片了。记得替换示例代码中的图片名称,以适应你的实际项目。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值