Я пытаюсь выполнить задание, показанное здесь: http://www.cs.utexas.edu/users/theshark/courses/cs329e/assignments/assignment_5.html
Я получил все это, за исключением дополнительной части кредита, где мне нужно иметь другое представление сбора в зависимости от в какой ячейке таблицы просматривался пользователь. Я действительно смущен даже тем, как начать делать это. Главный вопрос, который у меня возникает, - как узнать, на какую ячейку табличного представления щелкнул пользователь при активации перехода к представлению коллекции. Затем, основываясь на этом, я добавлю в вид некоторые фотографии, которые, я надеюсь, я смогу понять, как только этот момент наступит. Я действительно очень отчаялся, я смотрел на это часами и изо всех сил пытался понять.
Представление таблицы выглядит так:
import UIKit
class AnimalTableViewCell: UITableViewCell {
@IBOutlet weak var animalName: UILabel!
@IBOutlet weak var animal_Image: UIImageView!
}
class AnimalDescriptionTableViewCell: UITableViewCell {
@IBOutlet weak var scientificName: UILabel!
@IBOutlet weak var className: UILabel!
@IBOutlet weak var weightValue: UILabel!
}
let animals = [Animal(name: "Great White Shark", scientific_name: "Carcharodon carcharias", science_class: "Chondrichthyes", size: 680.0,isoCode: "greatwhite1"),Animal(name: "Common Cuttlefish", scientific_name: "Sepia officinalis", science_class: "Cephalopoda", size: 4.0,isoCode: "cuttlefish1"),Animal(name: "Takhi", scientific_name: "Equus ferus", science_class: "Mammalia", size: 300.0, isoCode: "takhi1"),Animal(name: "Asian Elephant", scientific_name: "Elephas maximum", science_class: "Mammalia", size: 5220.0, isoCode: "asianelephant1")]
class AnimalTableViewController: UITableViewController {
override func numberOfSections(in tableView: UITableView) -> Int {
return 4
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 2
}
override func viewDidLoad() {
super.viewDidLoad()
// Uncomment the following line to preserve selection between presentations
// self.clearsSelectionOnViewWillAppear = false
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem
}
// MARK: - Table view data source
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "animalCell", for: indexPath) as! AnimalTableViewCell
let cell2 = tableView.dequeueReusableCell(withIdentifier: "animalDescription", for: indexPath) as! AnimalDescriptionTableViewCell
let creatures = animals[indexPath.section]
if indexPath.row == 0 {
cell.animalName.text = creatures.name
cell.animal_Image.image = UIImage(named:creatures.isoCode)
return cell
}
if indexPath.row == 1 {
cell2.className.text = creatures.science_class
cell2.scientificName.text = creatures.scientific_name
cell2.weightValue.text = String(format: "%.1f", creatures.size) + " kg"
return cell2
}
return cell
}