[英]data not set section wise in collectionView
我正在填充從JSON
到UICollectionView
的數據,所以首先讓我告訴你我的回應
JSON 響應
{
"jigyasa_category_list": [
{
"status": "1",
"updated_date": "2019-11-18 17:02:37",
"created_date": "2019-08-28 16:32:22",
"jigyasa_category_image_id": "4",
"jigyasa_sanskrit": "jigyasa cate sanskrit 2",
"jig_cate_id": "7",
"jigyasa": [
{
"image1": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/purple_1.png",
"name_english": "",
"image5": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/purple_5.png",
"name_sanskrit": "",
"images": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/purple_1.png",
"image2": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/purple_2.png",
"name_hindi": "gfdgfd",
"image4": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/purple_4.png",
"image3": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/purple_3.png",
"jigyasa_id": "8"
}
],
"updated_by": "2",
"created_by": "2",
"jigyasa_hindi": "jigyasa cate hindi 1",
"jigyasa_english": "jigyasa cate english 3"
},
{
"status": "1",
"updated_date": "2019-11-13 16:28:43",
"created_date": "2019-08-29 15:07:53",
"jigyasa_category_image_id": "2",
"jigyasa_sanskrit": "dfgh",
"jig_cate_id": "11",
"jigyasa": [
{
"image3": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_3.png",
"jigyasa_id": "5",
"image5": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_5.png",
"name_sanskrit": "n,n,",
"name_english": "n,n,",
"images": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_1.png",
"image2": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_2.png",
"image1": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_1.png",
"image4": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_4.png",
"name_hindi": "n,n,"
},
{
"image3": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_3.png",
"jigyasa_id": "7",
"image5": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_5.png",
"name_sanskrit": "",
"name_english": "",
"images": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_2.png",
"image2": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_2.png",
"image1": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_1.png",
"image4": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_4.png",
"name_hindi": "sadsa"
}
],
"updated_by": "0",
"created_by": "2",
"jigyasa_hindi": "fcgh",
"jigyasa_english": "dfh"
},
{
"created_date": "2019-10-11 17:07:09",
"updated_date": "2019-10-11 17:10:04",
"jigyasa_hindi": "hindi",
"jig_cate_id": "14",
"jigyasa_english": "english",
"created_by": "2",
"jigyasa_category_image_id": "2",
"updated_by": "2",
"status": "1",
"jigyasa_sanskrit": "sanskrit",
"jigyasa": [
]
},
{
"created_date": "2019-11-04 10:48:06",
"updated_date": "2019-11-04 10:48:06",
"jigyasa_hindi": "hfgh",
"jig_cate_id": "15",
"jigyasa_english": "fghfg",
"created_by": "2",
"jigyasa_category_image_id": "2",
"updated_by": "0",
"status": "1",
"jigyasa_sanskrit": "gfhfgh",
"jigyasa": [
]
}
],
"message": "Jigyasa Category",
"success": "1"
}
所以這是我的回應,現在我將向您展示我的 model class
struct Jigyasa : Codable {
let image3 : String?
let image1 : String?
let name_english : String?
let images : String?
let name_hindi : String?
let jigyasa_id : String?
let image5 : String?
let image4 : String?
let name_sanskrit : String?
let image2 : String?
init(image3: String?,image1: String?,name_english: String,images: String?,name_hindi: String?,jigyasa_id: String?,image5: String?,image4: String?,name_sanskrit: String?,image2: String?) {
self.image3 = image3
self.image1 = image1
self.name_english = name_english
self.images = images
self.name_hindi = name_hindi
self.jigyasa_id = jigyasa_id
self.image5 = image5
self.image4 = image4
self.name_sanskrit = name_sanskrit
self.image2 = image2
}
}
下面是我獲取數據和填充collectionView的代碼
var jigyasaData = [Jigyasa]()
func jigyasaCatList(){
let preferences = UserDefaults.standard
let uid = "u_id"
let acTkn = "acc_tkn"
let u_ID = preferences.object(forKey: uid)
let A_Token = preferences.object(forKey: acTkn)
let params = ["user_id": u_ID!, "access_token": A_Token!]
print(params)
Alamofire.request(apijigyasacategorylist, method: .post, parameters: params).responseJSON(completionHandler: {(response) in
switch response.result{
case.success(let value):
let json = JSON(value)
print(json)
self.jigyasaData.removeAll()
let data = json["jigyasa_category_list"]
if data == []{
}else{
data.array?.forEach({ (jList) in
let jigarray = jList["jigyasa"]
if jigarray == []{
}else{
jigarray.array?.forEach({ (jUData) in
let j_uData = Jigyasa(image3: jUData["image3"].stringValue, image1: jUData["image1"].stringValue, name_english: jUData["name_english"].stringValue, images: jUData["images"].stringValue, name_hindi: jUData["name_hindi"].stringValue, jigyasa_id: jUData["jigyasa_id"].stringValue, image5: jUData["image5"].stringValue, image4: jUData["image4"].stringValue, name_sanskrit: jUData["name_sanskrit"].stringValue, image2: jUData["image2"].stringValue)
self.jigyasaData.append(j_uData)
})
}
self.collView.reloadData()
})
}
case.failure(let error):
print(error.localizedDescription)
}
})
}
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return jigyasaData.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! JigyasaCollectionViewCell
let photo = jigyasaData[indexPath.row].images
let fileUrl = URL(string: photo!)
cell.imgView.sd_setImage(with: fileUrl, placeholderImage: UIImage(named: "ic_PlaceHolder"), options: .refreshCached, completed: nil)
cell.imgView.layer.cornerRadius = 10
cell.lblTitle.text = jigyasaData[indexPath.row].name_hindi
cell.imgView.layer.shadowColor = UIColor.gray.cgColor
cell.imgView.layer.shadowOffset = CGSize(width: 0.0, height: 0.0)
cell.imgView.layer.shadowRadius = 2.0
cell.imgView.layer.shadowOpacity = 0.3
return cell
}
現在我將向您展示我從我的代碼中獲得的預期 output 和當前 output
有人請幫助我如何在collectionView中按部分獲取圖像
我之前的問題是關於如何從 json 獲取數據,現在這個問題是針對在填充 collectionView 時獲取數據后我遇到的問題,所以請幫助我,我遇到了這個問題
我在我的空文件中使用了你的 json 文件,我已經解析了數據。你可以這樣傳遞
像這樣制作 Model
import Foundation
struct JigyasaModel: Codable {
let jigyasaCategoryList: [JigyasaCategoryList]
let message, success: String
enum CodingKeys: String, CodingKey {
case jigyasaCategoryList = "jigyasa_category_list"
case message, success
}
}
// MARK: - JigyasaCategoryList
struct JigyasaCategoryList: Codable {
let status, updatedDate, createdDate, jigyasaCategoryImageID: String
let jigyasaSanskrit, jigCateID: String
let jigyasa: [Jigyasa]
let updatedBy, createdBy, jigyasaHindi, jigyasaEnglish: String
enum CodingKeys: String, CodingKey {
case status
case updatedDate = "updated_date"
case createdDate = "created_date"
case jigyasaCategoryImageID = "jigyasa_category_image_id"
case jigyasaSanskrit = "jigyasa_sanskrit"
case jigCateID = "jig_cate_id"
case jigyasa
case updatedBy = "updated_by"
case createdBy = "created_by"
case jigyasaHindi = "jigyasa_hindi"
case jigyasaEnglish = "jigyasa_english"
}
}
// MARK: - Jigyasa
struct Jigyasa: Codable {
let image1: String
let nameEnglish: String
let image5: String
let nameSanskrit: String
let images, image2: String
let nameHindi: String
let image4, image3: String
let jigyasaID: String
enum CodingKeys: String, CodingKey {
case image1
case nameEnglish = "name_english"
case image5
case nameSanskrit = "name_sanskrit"
case images, image2
case nameHindi = "name_hindi"
case image4, image3
case jigyasaID = "jigyasa_id"
}
}
var jigyasaData = [JigyasaCategoryList]() ///-- this array
if let file = Bundle.main.url(forResource: "JsonFile", withExtension: "json") {
do {
let data = try Data(contentsOf: file)
// let data = JSON(value)
let decoder = JSONDecoder()
let user = try decoder.decode(JigyasaModel.self, from: data)
print(user.jigyasaCategoryList.count)
jigyasaData = user.jigyasaCategoryList
collectionView.reloadData() //-- reload collection view
}
catch {
print(error.localizedDescription)
}
}
//--- collection view data source
func numberOfSections(in collectionView: UICollectionView) -> Int
{
return jigyasaData.count
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return jigyasaData[section].jigyasa.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as? Yourcell
let imagStrng = jigyasaData[indexPath.section].jigyasa[indexPath.row].image3
return cell
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.