Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
Slava-hacker32
7 / 7 / 0
Регистрация: 16.11.2011
Сообщений: 250
#1

В одной ячейке таблицы несколько повторяющихся элементов - Программирование iOS

04.04.2015, 23:41. Просмотров 787. Ответов 2
Метки нет (Все метки)

Добрый день. Прошу помощи в виде совета, а не просьбы написать вместо меня. Учусь работать с VK API и решил вывести посты со стены юзера. Если по одному типу данных в ячейке (одна аудиозапись, одно видео, текст, репост) то все просто и это я реализовал, но потом стал вопрос, что делать если в одном посту будет две фотографии или две и больше аудиозаписи)? Раньше было один пост = одна ячейка таблицы (для каждого типа поста своя кастомная ячейка), но как поступить теперь я даже не могу придумать. Была идея все посты сделать массивами, что бы в массиве постов были массивы с находящимися элементами (где два элемента в массиве где 5), но ничего не получается, так как в один массив добавляются данные из других постов (по типам они одинаковые, но должны быть в разных ячейках). Такого элемента как идентификатор поста я не нашел (что бы сравнивать если эта фотка принадлежит этому посту то добавляем к массиву, если нет то создаем новый. Именно в этом месте я и застрял даже идей уже нет.

Даже если я распределю данные по массивам, как их потом правильно отображать, если с картинками все просто, внутрь ячейки вкинуть колекшнВью и в Колекшине отображать картинки, то как с аудиозаписями поступить? Засунуть внутрь ячейки еще один tableView и уже во внутреннем TV отображать аудиозаписи (вариант хорош тем, что у меня сохранится контроль над кнопкой запуска/остановки файла), но а вообще как этот вариант?
Буду благодарен за помощь в первую очередь интересует то как эти данные сохранить (может в классах или родительском классе создать какое то свойство или массив)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2015, 23:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В одной ячейке таблицы несколько повторяющихся элементов (Программирование iOS):

Несколько значений в одной ячейке таблицы - MySQL
В моем проекте человек может относится к нескольким организациям. Организации в отдельной таблице. В таблице с людьми предполагаю указывать...

Несколько строк в одной ячейке таблицы - C++ Builder
Для наглядности на форму требуется поместить таблицу каждая из ячеек которой может содержать от одной до десятков строк(создание,...

Вывод информации в виде таблицы (не выводит несколько строк в одной ячейке) - C#
Добрый вечер. может ли кто помочь с таким вопросом. Имеется задача Создать класс «Треугольник», описывающий объекты – треугольники...

Несколько значений в одной ячейке - MS Access
Доброго времени суток! Для начала скажу, что искал тему по многим форумам но так и ничего не нашел. Суть проблемы : пусть...

Несколько значений в одной ячейке - MS Excel
Добрый день уважаемые гуру excel. Столкнулся с такой проблемкой. Делаю табличку, в которой указывается количество отгружаемого товара и...

Несколько строк в одной ячейке - MS Access
Как сделать чтобы в одной ячейке по нажатию Enter курсор не перепрыгивал на другую ячейку, а переходил в той же ячейке на другую строку?...

2
HellBoy4eG
7 / 7 / 1
Регистрация: 15.10.2013
Сообщений: 19
15.04.2015, 18:32 #2
Немого сказать, что окончательно тебя понял, но заметил, что ты не используешь секции. Опишу небольшой пример!
Примеры кода буду писать на Свифте!

создаешь перечисление постов, это будет количество секций
Objective-C
1
2
3
4
5
6
enum DetailSectionType:Int {
    case Photo = 0
    case Video= 1
    case Music = 2
    case DetailSectionCount = 3 // Вот это и будет количеством секций
}
по надобности создаешь 3 кастомные ячейки если посты будут похожими используешь одну для обоих
в примере будут 3 кастомные ячейки
UITableViewPhotoCell
UITableView Video Cell
UITableViewMusicCell


Objective-C
1
2
3
4
// MARK: - Table view data source
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return DetailSectionType.DetailSectionCount.rawValue //Количество секций будет 3
}
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
// можно использовать и 1 массив, это зависит от того, как ты получаешь данные
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        let type:DetailSectionType = DetailSectionType(rawValue: section)!
        
        switch (type) {
        case DetailSectionType.Photo:
            return self.photosArray.count //в случае с фото и видео можно создать ячейку c Пикер вью и уже в его делегате указывать количество ячеек
        case DetailSectionType. Video:
            return self.videosArray.count
        case DetailSectionType.Music:
            return self.musicArray.count
      }
}
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    var cell:UITableViewCell = UITableViewCell()
    // Photo
    if (indexPath.section == DetailSectionType.Photo.rawValue) {
        let photoCell: UITableViewPhotoCell = tableView.dequeueReusableCellWithIdentifier("UITableViewPhotoCell") as UITableViewPhotoCell
        //инициализация UITableViewPhotoCell
        cell = photoCell
        // Video
    } else if (indexPath.section == DetailSectionType.Video.rawValue) {
         let photoCell: UITableViewVideoCell = tableView.dequeueReusableCellWithIdentifier("UITableViewVideoCell") as UITableViewVideoCell
         //инициализация UITableViewVideoCell
         cell = photoCell
         // Music
    } else if (indexPath.section == DetailSectionType.Music.rawValue) {
         let photoCell: UITableViewMusicCell = tableView.dequeueReusableCellWithIdentifier("UITableViewMusicCell") as UITableViewMusicCell
         //инициализация UITableViewMusicCell
         cell = photoCell
    }
    return cell
}
 
//Ну и высоту
 
    func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
        switch indexPath.section{
        case DetailSectionType.Photo.rawValue:
            return 35 // можно задать динамически от содержания контента
        case DetailSectionType.Video.rawValue:
            return 35
        case DetailSectionType.Music.rawValue:
            return 35
   }
}
Надеюсь поможет...
1
Vorona
Peace 2 all shining faces
669 / 531 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
15.04.2015, 23:10 #3
Цитата Сообщение от Slava-hacker32 Посмотреть сообщение
Такого элемента как идентификатор поста я не нашел
вот честно незнаком с вк апи, но может быть они банально по таймстемпу разделяются?
не уверен что за одну секунду реально создать несколько постов, а если и реально, то возможно время уточняется по миллисекундам?

поискал - вот есть https://vk.com/dev/wall.post, как по мне все доступно описано, как решить ваш первый вопрос,
айдишники есть, все гут

Цитата Сообщение от Slava-hacker32 Посмотреть сообщение
если с картинками все просто, внутрь ячейки вкинуть колекшнВью и в Колекшине отображать картинки, то как с аудиозаписями поступить? Засунуть внутрь ячейки еще один tableView и уже во внутреннем TV отображать аудиозаписи (вариант хорош тем, что у меня сохранится контроль над кнопкой запуска/остановки файла), но а вообще как этот вариант?
второе - а чем колекшн вью "проще" или лучше чем тейбл вью?
как по мне - одно и тоже
раз считаете, что колекшн вью - ок, тогда таблица - тоже ок
другой вопрос - кто будет датасорсом для этих таблиц или колекшнов внутри ячеек
так тут я бы конечно выделил отдельные классы для этого и сделал бы их переменными внутри основного датасорса или контроллера, чтобы они могли тригерить ему свои ивенты, за которые они не могут принять решения сами,
но ради всего святого, не делайте ячейку датасорсом, ячейка - это просто вью

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2015, 23:10
Привет! Вот еще темы с ответами:

Несколько данных в одной ячейке - PHP
Здравствуйте, посоветуйте пожалуйста как лучше сделать. Есть таблица users, в ней дефолтные значения, типо id, name, password, etc. ...

Несколько значений в одной ячейке - SQL Server
Всем привет.Помогите сделать запрос, чтобы в одной ячейке разместить значения из нескольких ячеек через запятую?

Несколько строк текста в одной ячейке - Базы данных
В строках есть такая штука, чего нет ни в одном другом типе данных - перенос на новую строчку. Как мне сделать так, что бы при записи и...

Разделение данных из одной ячейке на несколько - MS Excel
Стоит следующая задача: есть адрес в ячейке, который нужно разделить на несколько ячеек - индекс, страна, город и собственно адрес внутри...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru