我想通过单击解析 Json 的集合视图单元格来获取特定数据
Posted
技术标签:
【中文标题】我想通过单击解析 Json 的集合视图单元格来获取特定数据【英文标题】:I want to get specific data with clicking on collection view cell with parsing Json 【发布时间】:2016-11-01 08:37:20 【问题描述】:我有一个集合视图和 Json 数组。我想通过点击集合视图单元格来获取另一个视图的特定数据。我曾经通过在主视图上的按钮上使用标签来获取数据,但是当我用集合视图更改视图时,现在没有单独的按钮,所以集合视图现在可以使用索引。如何做一种解析器从集合视图中获取带有点击索引的数据?
import Foundation
class CardGenerator
static func generateCards(onMode mode: Letter) -> JsonEnum
let filepath = Bundle.main.path(forResource: "Data", ofType: "json")!
let data = NSData(contentsOfFile: filepath)!
let json = try! JSONSerialization.jsonObject(with: data as Data, options: JSONSerialization.ReadingOptions.allowFragments) as! [String: AnyObject]
print(json)
print(json as? NSObject )
let cards: JsonEnum = JsonEnum(img: "", txt: "", lett: "", sound: "")
if let jsonCards = json[mode.rawValue] as? [String: AnyObject]
//for aso in jsonCards
print(jsonCards)
let card = JsonEnum()
if let image = jsonCards["image"] as? String
card.image = image
if let text = jsonCards["text"] as? String
card.text = text
if let letter = jsonCards["letter"] as? String
card.letter = letter
if let sound = jsonCards["sound"] as? String
card.sound = sound
print(card.image, card.text, card.letter, card.sound)
return card
return cards
【问题讨论】:
【参考方案1】:当你选择 UICollectionViewCell 时,下面的 UICollectionViewDelegate 会被调用
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
要使用特定单元格标签的数据,请使用以下代码:-
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
let cell = collectionView.cellForItem(at: indexPath)
//here get data from cell
【讨论】:
如何使用json获取这个func中的数据? 您需要做的是在viewDidLoad
中调用您的generateCards
方法并在变量中获取输出,然后在collectionView 的didSelectItemAt
方法中从@987654326 获取输出变量索引处的值@使用indexPath.row
以上是关于我想通过单击解析 Json 的集合视图单元格来获取特定数据的主要内容,如果未能解决你的问题,请参考以下文章
如何根据 UICollectionView 中有多少单元格来更改视图的大小
TableView 跳过一些单元格来显示来自 JSON 的数据
如果 UICollectionView 没有足够的单元格来填充一行,则使第一行不完整而不是最后一行