[英]data not set section wise in collectionView
i am populating data from JSON
to UICollectionView
so first let me show you my response我正在填充从JSON
到UICollectionView
的数据,所以首先让我告诉你我的回应
JSON Response 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"
}
so this is my response and now i will show you my model class所以这是我的回应,现在我将向您展示我的 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
}
}
and below is my code for fetch data and populating collectionView下面是我获取数据和填充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
}
now i will show you expected output and current output which i am getting from my code现在我将向您展示我从我的代码中获得的预期 output 和当前 output
![Currently i am getting output like this][] ![目前我正在像这样得到 output][]
![][And Now i want output like this] ![][现在我想要像这样的 output]
someone please help me how to get images by section in collectionView有人请帮助我如何在collectionView中按部分获取图像
my previous question is for how to fetch data from json and now this question is for after getting data while populating collectionView i am facing issue so please help me i am stuck with this issue我之前的问题是关于如何从 json 获取数据,现在这个问题是针对在填充 collectionView 时获取数据后我遇到的问题,所以请帮助我,我遇到了这个问题
I used your json file to in my empty file and I have parsed data.you can pass as this我在我的空文件中使用了你的 json 文件,我已经解析了数据。你可以这样传递
Make Model as this像这样制作 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.