Size: a a a

iOS Developers — русскоговорящее сообщество

2019 December 09

S

Sasha_A in iOS Developers — русскоговорящее сообщество
Gatsby
Всем привет! Задача такая - есть два массива: [Partners] и [ViewModel]
struct Partners {
let name: String?
let imageID: String?
let outlets: [Outlets]
?
}

struct ViewModel {
let name:  String?
let image: UIImage?
let outlets: [Outlets]?
}

struct Outlets {
let latitude: String?
let longitude: String?
}
Как преобразовать массив Partners в ViewModel, используя RxSwift. Проблема еще также в том, что во ViewModel мы можем увидеть что константа image стала UIImage. В массиве Partners у нас есть id, по которому мы стучимся к API. Нам возвращается фотография формата base64string.
Ее я декодирую таким методом -
func base64ToImage(_ base64String: String) -> UIImage? {
   guard let imageData = Data(base64Encoded: base64String) else { return nil }
   return UIImage(data: imageData)

}
На сколько я понимаю, нужно использовать flatMap для преобразования.
а зачем во viewmodel хранить именно UIImage? это что в итоге будет? табилца? в цикле преобразования ждать пока каждая картинка скачается? Обычно во viewmodel хранится сслыка на картинку, а UI уже сам решает когда её загрузить. Если это таблица, есть вероятность что какая-то ячейка никогда не покажется на экране, зачем для нее скачивать изображение?
источник

S

Sasha_A in iOS Developers — русскоговорящее сообщество
и почему все три поля опциональные? может быть модель где всё nil? или это просто какая-то задача из учебника?
источник

G

Gatsby in iOS Developers — русскоговорящее сообщество
Sasha_A
и почему все три поля опциональные? может быть модель где всё nil? или это просто какая-то задача из учебника?
Просто для декодирования JSON используется ObjectMapper. Там требования такое, чтобы все было опциоальным)
источник

S

Sasha_A in iOS Developers — русскоговорящее сообщество
Gatsby
Просто для декодирования JSON используется ObjectMapper. Там требования такое, чтобы все было опциоальным)
ого, я им не пользовался, но современный swift уже и сам может декодировать JSON же
источник

S

Sasha_A in iOS Developers — русскоговорящее сообщество
Ну а так, да, используй обычный .map
источник

G

Gatsby in iOS Developers — русскоговорящее сообщество
Sasha_A
Ну а так, да, используй обычный .map
Тогда, значит стоит декодировать в ячейке самой уже? Сделать image тоже «String?». К примеру, через цикл прогнать Partners, там все вогнать во ViewModel. А потом уже через map использовать метод base64ToImage и биндить в tableView. Верно?)
источник

S

Sasha_A in iOS Developers — русскоговорящее сообщество
Gatsby
Тогда, значит стоит декодировать в ячейке самой уже? Сделать image тоже «String?». К примеру, через цикл прогнать Partners, там все вогнать во ViewModel. А потом уже через map использовать метод base64ToImage и биндить в tableView. Верно?)
И в map из imageid сделать готовый url
источник

К

Константин in iOS Developers — русскоговорящее сообщество
Добрый день, как правильно сделать адаптивный текст в лейблах? 15 входит, 25 и 35 уже нет
источник

К

Константин in iOS Developers — русскоговорящее сообщество
источник

T

Tarik in iOS Developers — русскоговорящее сообщество
Константин
Добрый день, как правильно сделать адаптивный текст в лейблах? 15 входит, 25 и 35 уже нет
Не задавай фиксированый размер, лейбы центральной
источник

S

Sasha_A in iOS Developers — русскоговорящее сообщество
Константин
Добрый день, как правильно сделать адаптивный текст в лейблах? 15 входит, 25 и 35 уже нет
Есть поле в свойствах лайбы - минимальный размер шрифта
источник

S

Sasha_A in iOS Developers — русскоговорящее сообщество
Tarik
Не задавай фиксированый размер, лейбы центральной
Насколько я помню там по дизайну ее расширять нельзя)
источник

T

Tarik in iOS Developers — русскоговорящее сообщество
Sasha_A
Насколько я помню там по дизайну ее расширять нельзя)
Уйдёт на пару пикселей, пусть дизайнеру пишет что он хуйово продумал этот момент
источник

К

Константин in iOS Developers — русскоговорящее сообщество
Sasha_A
Есть поле в свойствах лайбы - минимальный размер шрифта
по умолчанию стоит 110 шрифт
задал минимальным 90
теперь 15 написано 110, а все остальное 90, из-за этого скачет текст
источник

T

Tarik in iOS Developers — русскоговорящее сообщество
Можно еще через стек вью
источник

T

Tarik in iOS Developers — русскоговорящее сообщество
Закинь туда 3 елемента кнопки и лейбу и выровняй по центру экрана или где тебе надо
источник

G

Gatsby in iOS Developers — русскоговорящее сообщество
Sasha_A
И в map из imageid сделать готовый url
Вот только сама проблема в том, что я не знаю как это записать. В инете особо не нашел
источник

T

Tawfik in iOS Developers — русскоговорящее сообщество
подскажите, можно ли Заметки выгружать в программу ?
источник

T

Tawfik in iOS Developers — русскоговорящее сообщество
такой функицонал есть в CloudKit ?
источник

AB

Anton Burkin in iOS Developers — русскоговорящее сообщество
Sasha_A
ого, я им не пользовался, но современный swift уже и сам может декодировать JSON же
+1, Codable топчик
источник