Table View Controller 不显示资产文件夹中的内容,或者根本不显示任何内容
Table View Controller not showing content from asset folder, or any content at all really
作为一个完全的新手,我按照下面链接的教程设计了一个非常相似的新视图。 Link Here
最终,我想显示一个集合视图,其中图像显示在命名上方图像的标签上方。例如。下面显示了一张带有 "Beef" 的奶牛图片。一只鸡,下面 "Chicken",你明白了。
我创建了一个 UICollectionViewController
,称为我的膳食,作为主故事板入口点的一个 segue。 UICollectionViewController
,My Meals,嵌入到导航控制器中。此视图有自己的 Cocoa Touch Class,如在身份检查器中看到的那样 "MyMealsViewController.swift"。
我创建了一个名为 "CollectionViewCell.swift" 的 Cocoa Touch Class。我在 Collection View 上创建了一个带有 UIImageView
和 Label 的单元格。 UIImageView
和Label都连接到CollectionView.swift,如下:
import UIKit
class CollectionViewCell: UICollectionViewCell {
@IBOutlet weak var mainIngredientImage: UIImageView!
@IBOutlet weak var mainIngredientLabel: UILabel!
}
单元格也被赋予 class CollectionViewCell
,如身份检查器中所示。
我提取的代码,希望是视频中的一个字符一个字符在这里:
import UIKit
class MyMealsViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource{
@IBOutlet weak var collectionView: UICollectionView!
let ingredients = ["Beef", "Chicken", "Duck", "Lamb", "Pork", "Saugage", "Seafood", "Turkey", "Other"]
let ingredientsImages: [UIImage] = [
UIImage(named: "Beef")!,
UIImage(named: "Chicken")!,
UIImage(named: "Duck")!,
UIImage(named: "Lamb")!,
UIImage(named: "Pork")!,
UIImage(named: "Sausage")!,
UIImage(named: "Seafood")!,
UIImage(named: "Turkey")!,
UIImage(named: "Other")!,
]
override func viewDidLoad() {
super.viewDidLoad()
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return ingredients.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! CollectionViewCell
cell.mainIngredientLabel.text = ingredients[indexPath.item]
cell.mainIngredientImage.image = ingredientsImages[indexPath.item]
return cell
}
}
我希望使用的图片按照代码命名,它们都在Assets.xassets文件夹中等待。
我面临的问题是,当我 运行 模拟器时,页面会加载,背景颜色也会加载。然而就是这样。没有标签。没有图像。如果有标签我会理解,但似乎与单元格无关。
我已尝试将 UIImageView
从纵横比填充、纵横比适合和缩放更改为填充。都无济于事。
有人可以推荐我误入歧途的地方吗?是的,我也明白我必须从某个地方开始,这个视频可能不是最容易理解的,但它看起来像是我希望创建的!有什么问题,或者我处于新手状态遗漏的地方请追问。
你错过了 "two important things" 他提到他忘记了 7:25 in the video – 也就是说,你需要将你的集合视图的 dataSource
和 delegate
设置为你的视图控制器:
override func viewDidLoad() {
super.viewDidLoad()
collectionView.dataSource = self
collectionView.delegate = self
}
作为一个完全的新手,我按照下面链接的教程设计了一个非常相似的新视图。 Link Here
最终,我想显示一个集合视图,其中图像显示在命名上方图像的标签上方。例如。下面显示了一张带有 "Beef" 的奶牛图片。一只鸡,下面 "Chicken",你明白了。
我创建了一个 UICollectionViewController
,称为我的膳食,作为主故事板入口点的一个 segue。 UICollectionViewController
,My Meals,嵌入到导航控制器中。此视图有自己的 Cocoa Touch Class,如在身份检查器中看到的那样 "MyMealsViewController.swift"。
我创建了一个名为 "CollectionViewCell.swift" 的 Cocoa Touch Class。我在 Collection View 上创建了一个带有 UIImageView
和 Label 的单元格。 UIImageView
和Label都连接到CollectionView.swift,如下:
import UIKit
class CollectionViewCell: UICollectionViewCell {
@IBOutlet weak var mainIngredientImage: UIImageView!
@IBOutlet weak var mainIngredientLabel: UILabel!
}
单元格也被赋予 class CollectionViewCell
,如身份检查器中所示。
我提取的代码,希望是视频中的一个字符一个字符在这里:
import UIKit
class MyMealsViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource{
@IBOutlet weak var collectionView: UICollectionView!
let ingredients = ["Beef", "Chicken", "Duck", "Lamb", "Pork", "Saugage", "Seafood", "Turkey", "Other"]
let ingredientsImages: [UIImage] = [
UIImage(named: "Beef")!,
UIImage(named: "Chicken")!,
UIImage(named: "Duck")!,
UIImage(named: "Lamb")!,
UIImage(named: "Pork")!,
UIImage(named: "Sausage")!,
UIImage(named: "Seafood")!,
UIImage(named: "Turkey")!,
UIImage(named: "Other")!,
]
override func viewDidLoad() {
super.viewDidLoad()
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return ingredients.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! CollectionViewCell
cell.mainIngredientLabel.text = ingredients[indexPath.item]
cell.mainIngredientImage.image = ingredientsImages[indexPath.item]
return cell
}
}
我希望使用的图片按照代码命名,它们都在Assets.xassets文件夹中等待。
我面临的问题是,当我 运行 模拟器时,页面会加载,背景颜色也会加载。然而就是这样。没有标签。没有图像。如果有标签我会理解,但似乎与单元格无关。
我已尝试将 UIImageView
从纵横比填充、纵横比适合和缩放更改为填充。都无济于事。
有人可以推荐我误入歧途的地方吗?是的,我也明白我必须从某个地方开始,这个视频可能不是最容易理解的,但它看起来像是我希望创建的!有什么问题,或者我处于新手状态遗漏的地方请追问。
你错过了 "two important things" 他提到他忘记了 7:25 in the video – 也就是说,你需要将你的集合视图的 dataSource
和 delegate
设置为你的视图控制器:
override func viewDidLoad() {
super.viewDidLoad()
collectionView.dataSource = self
collectionView.delegate = self
}