Показать фото/видео из массива в collectionview, scrollview?


#21

Подскажите пжл, если не затруднит

  1. pageControl - проскролив весь список до конца, я начина скролить назад, но метод cell.configure(item) из cellForItemAt уже не срабатыает. А срабатывают scrollViewDidScroll, scrollViewDidEndDecelerating.
    1.1 И получается те видео что были в этом массиве уже не срабатывают/не запускаются
    1.2 Почему то сбивается массив, к примеру если видео было 3им, то при скроле назад, оно четвертое
    Что я упустил, делал все как Вы завещали)))))

  2. По Вашему мнению лучше цикличный pageScroll или что бы доходили до конца списка и листание назад. Понимаю что вопрос субъективный, и как бы сделали Вы?


#22

Можете показать класс ячейки?


#23

Добрый день
Необходимо Ваше экспертное мнение

  1. Есть такая ссылка

    https:///v/t50.2886-16/78772438_168538094239120_4837216032625004028_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5mZWVkIiwicWVfZ3JvdXBzIjoiW1wiaWdfd2ViX2RlbGl2ZXJ5X3Z0c19vdGZcIl0ifQ&_nc_ht=1-1.fna.fbcdn.net&_nc_cat=104&_nc_ohc=MNWueDGaolMAX_pVTQx&vs=18076934281156588_1808901862&_nc_vs=HBksFQAYJEdOYjRzUVNRLVR6VlNKa0FBUHdOY0Y1YVBpRkRia1lMQUFBRhUAAsgBABUAGCRHR1Q5c0FUV0ZnbE9MbUlBQUxZbjhZV3pwdDFYYmtZTEFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMBUAABgAFtjKsbyHuJxAFQIoAkMzLBdAPgAAAAAAABgSZGFzaF9iYXNlbGluZV8xX3YxEQB16gcA&_nc_rid=b38248e328&oe=5EE27132&oh=f361461576fb058d15054bae87cf803e
    
  2. Как бы я не парсил JSON методами

    JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [String:Any]
    
    //  Либо          
    let json = try jsonDecoder.decode(TopLevel.self, from: data)
    

я получаю только часть url

https://1-1.fna.fbcdn.net/v/t50.2886-16/0_0_0_%2F%2F.fods1-1.fna.fbcdn.net%2Fv%2Ft50.2886-16%2F0_0_0_\0.mp4%3F_nc_ht%3Dfods1-1.fna.fbcdn.net%26_nc_cat%3D100%26_nc_ohc%3DWnu_-GvKHJoAX_XgrrT%26oe%3D5EE27694%26oh%3D788340b5df14bcdcc24663d3cc1fad02

А если открою json в браузере, то вижу весь url
Подскажите пжл в чем ошибка/тупизм?


#24

В чем проблема? В парсинге url? просто у меня все расспарсилось

let json = """
{
    "url": "https://instagram.fods1-1.fna.fbcdn.net/v/t50.2886-16/78772438_168538094239120_4837216032625004028_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5mZWVkIiwicWVfZ3JvdXBzIjoiW1wiaWdfd2ViX2RlbGl2ZXJ5X3Z0c19vdGZcIl0ifQ&_nc_ht=instagram.fods1-1.fna.fbcdn.net&_nc_cat=104&_nc_ohc=MNWueDGaolMAX_pVTQx&vs=18076934281156588_1808901862&_nc_vs=HBksFQAYJEdOYjRzUVNRLVR6VlNKa0FBUHdOY0Y1YVBpRkRia1lMQUFBRhUAAsgBABUAGCRHR1Q5c0FUV0ZnbE9MbUlBQUxZbjhZV3pwdDFYYmtZTEFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMBUAABgAFtjKsbyHuJxAFQIoAkMzLBdAPgAAAAAAABgSZGFzaF9iYXNlbGluZV8xX3YxEQB16gcA&_nc_rid=b38248e328&oe=5EE27132&oh=f361461576fb058d15054bae87cf803e"
}
"""

struct Item: Decodable {
    let url: String
}


let data = json.data(using: .utf8)!

let model = try! JSONDecoder().decode(Item.self, from: data)

print(model)

#25

Да в Вашем случае работает
` Alamofire.request(serviceName, method: .get, parameters: parameters).validate().responseJSON { response in

        let jsonDecoder = JSONDecoder()

        switch(response.result) {
        case .success:
            
            if let data = response.data {
                print("\nJson data \(data) \n")
            do {
                let json = try jsonDecoder.decode(TopLevel.self, from: data)
                print("\nJson \(json) \n")
                
                completion(json, nil)
            } catch let error {
                print("\nJson Error\n", error.localizedDescription)
            }
            }
        
        case .failure(_):
            completion(nil, response.result.error as NSError?)
            print("\nData failure\n", response.result.error as Any)
            break
        }
    }`

У меня в таком формате не работает. Модель правильная. Потому что если ссылка короче, то она ее считывает целиком. А если такая длинная то всю не может считать. В чем же тогда проблема?


#26

Возможно все дело в кодировке utf8? Но я же сразу распарсиваю json согласно модели. Получается нужен костыль из за одной строки, и где то лепить utf8?