在常规 Xcode 项目中重用 Playground 代码
Posted
技术标签:
【中文标题】在常规 Xcode 项目中重用 Playground 代码【英文标题】:Reuse playground code in a regular Xcode project 【发布时间】:2020-09-16 07:51:34 【问题描述】:我有一些代码可以在我的操场上创建 UICollectionView。该代码可以正常工作并且可以预览。现在我正在尝试将它重用到 Xcode 项目中,我没有收到任何错误,但模拟器上的构建只是纯白色.. 什么都看不到
有人能解释一下这个原因吗? :)
import UIKit
//import PlaygroundSupport
class MyViewController : UIViewController
var myCollectionView:UICollectionView?
override func viewDidLoad()
super.viewDidLoad()
let view = UIView()
view.backgroundColor = .white
let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
layout.sectionInset = UIEdgeInsets(top: 20, left: 10, bottom: 10, right: 10)
layout.itemSize = CGSize(width: 60, height: 60)
myCollectionView = UICollectionView(frame: self.view.frame, collectionViewLayout: layout)
myCollectionView?.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "MyCell")
myCollectionView?.backgroundColor = UIColor.white
myCollectionView?.dataSource = self
myCollectionView?.delegate = self
view.addSubview(myCollectionView ?? UICollectionView())
self.view = view
extension MyViewController: UICollectionViewDataSource
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
return 9 // How many cells to display
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
let myCell = collectionView.dequeueReusableCell(withReuseIdentifier: "MyCell", for: indexPath)
myCell.backgroundColor = UIColor.blue
return myCell
extension MyViewController: UICollectionViewDelegate
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
print("User tapped on item \(indexPath.row)")
// Present the view controller in the Live View window
//PlaygroundPage.current.liveView = MyViewController()
【问题讨论】:
您希望PlaygroundPage.current.liveView = MyViewController()
在ios 应用程序中工作吗?如果您使用故事板,您应该在故事板中将MyViewController
设置为 VC 的类。
不,我没想到 de 'PlaygroundPage.current.liveView = MyViewController()' 可以在 iOS 应用程序中工作。这就是为什么我把 // 禁用它...我还删除了最后一行代码但仍然没有效果。那么,如何在我的故事板中将 MyViewController 设置为 VC 的类?
【参考方案1】:
你有没有去故事板,在文档大纲中选择视图控制器,并在 Identity Inspector 中将类名从 UIViewController 更改为 MyViewController?如果您不进行更改,Xcode 会假定您要使用默认的 UIViewController,它是空白的。
【讨论】:
以上是关于在常规 Xcode 项目中重用 Playground 代码的主要内容,如果未能解决你的问题,请参考以下文章