Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование iOS/iPhone
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/10: Рейтинг темы: голосов - 10, средняя оценка - 4.80
petrovichtim
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 26
1

Построение двух-колоночной таблицы в UITableView

10.03.2014, 18:13. Просмотров 1840. Ответов 15
Метки нет (Все метки)

Добрый день уважаемые товарищи!
Хочу построить в UITableView обычную таблицу с двумя колонками.
В ячейку (Cell) я динамически создаю 2 UITextView и хочу чтобы они меняли свою ширину и высоту в зависимости от текста. Ну или хотя бы выглядели более- менее солидно.
Прошу поделится опытом построения табличных интерфейсов или подшаманить мой код.
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
34
35
36
37
38
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{ NSString *cellIdentifier = @"Cell";
   // UIr *label;
    
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if (cell == nil)
    {
        //здесь можно не просто создать ячейку, можно добавить в нее даже картинки
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier] ;
        UITextView *tw=[[UITextView alloc] initWithFrame:CGRectMake(0, 0, cell.frame.size.width/2, 150)];
        tw.tag=1;
        tw.editable = NO;
        tw.layer.borderWidth = 2.0f;
        tw.layer.borderColor = [[UIColor grayColor] CGColor];
        [cell.contentView addSubview:tw];
        UITextView *tw2=[[UITextView alloc] initWithFrame:CGRectMake(cell.frame.size.width/2, 0, cell.frame.size.width/2, 150)];
        tw2.tag=2;
        tw2.editable = NO;
        tw2.scrollEnabled=true;
        tw2.layer.borderWidth = 2.0f;
        tw2.layer.borderColor = [[UIColor grayColor] CGColor];
        [cell.contentView addSubview:tw2];
    }
    
    
    NSString *word = _words[indexPath.row];
    //cell.textLabel.text =[word description];
    UITextView *tw=(UITextView*) [cell viewWithTag:1];
    tw.text=@"первая строка ";//[word description];
    
    UITextView *tw2=(UITextView*) [cell viewWithTag:2];
    tw2.text=@"вторая строка  вам вав амрваимрм вармива мамиврм рваимвамр врара маврм ваи  ";//[word description];
    CGRect rect=tw2.frame;
    rect.size.height=tw2.contentSize.height;
    tw2.frame=rect;
    cell.frame.size.height = tw2.contentSize.height;
    return cell;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2014, 18:13
Ответы с готовыми решениями:

Несуществующий UITableView
Добрый вечер. Столкнулся с такой проблемой: создал простое приложение с...

Сортировка в UITableView
Добрый день. Во время разработки столкнулся с необходимостью сортировки, а так...

Работа с жестами в UITableView
Разрабатываем приложение, столкнулись с проблемой жестов в uitableView. в...

UITableView & UIButton
Доброго времени суток. Возник вопрос у меня есть таблица с 3-мя ячейками мне...

Индексация ячеек в UITableView
Здравствуйте, скажите пожалуйста как решить проблему: у меня в UITableView есть...

15
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
10.03.2014, 18:55 2
Несколько уточняющих вопросов и комментариев:
1. Ширина "колонок" фиксирована или тоже от контента зависит? Судя по коду таки фиксирована, но "написал" и "хотел написать" - 2 большие разницы
2. Чем не полюбился UICollectionView?
3. if (cell == nil). Если вы перестанете использовать архаичные подходы, это условие не сработает никогда.
4. Почему не создать UI ячейки в Interface Builder'е? Это же быстрее, проще и нагляднее.
5. На сколько я понял, ваш главный вопрос - как изменить высоту ячейки? для этого в делегате есть специальный метод. В вашем случае я бы создал ячейку, и в этом методе загружал в нее текст и спрашивал у нее же какая высота ей нужна.
1
petrovichtim
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 26
10.03.2014, 19:10  [ТС] 3
1.Ширина должна зависеть от контента.
2. Не умею его готовить(
3. Согласен, пока таскаю как апендикс
4.Толком с ним не разобрался, если есть на русском материал, прошу поделитесь
5. Что-то вроде того и хочу
0
petrovichtim
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 26
12.03.2014, 18:50  [ТС] 4
Вопрос до сих пор не снят. Ячейки рисую в стори боард.
0
zulkis
684 / 611 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
12.03.2014, 21:08 5
petrovichtim, UITableView это не NSTableView в Cocoa, он не предназначен для отображения информации в нескольких колонках.
Используйте UICollectionView. Для вашей задачи даже не придется UICollectionViewLayout переписывать, уже есть UICollectionViewFlowLayout.
2. Не умею его готовить(
Готовить люди учатся. Вот и научитесь. Банальных туториалов - полно.
1
petrovichtim
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 26
12.03.2014, 23:14  [ТС] 6
первая же выдача поиска тынц говорят не торт
я хочу простую таблицу : ячейка слева, ячейка справа - внутри текст
все что находил или устарело или в один столбец или вообще битые ссылки
0
Vorona
Peace 2 all shining faces
672 / 534 / 84
Регистрация: 05.03.2010
Сообщений: 1,283
13.03.2014, 01:36 7
создайте класс наследник UITableViewCell и спокойно задайте в ячейке столько колонок, сколько вам надо, в чем проблема?
программно, естественно
0
Миниатюры
Построение двух-колоночной таблицы в UITableView  
petrovichtim
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 26
13.03.2014, 10:15  [ТС] 8
Во-первых нужен пример, во-вторых у Вас прекрасная таблица, но у неё текст в одну строчку.
Таких пример в инете вагоны, а вот что было что-то такое

Ни разу не встречал. Или тонны старого глючного кода или просто не работает и все.
В андроиде это задача решается в разметке элементарно.
Но тут я ещё не достиг просветления, прошу помочь знающих .
0
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
13.03.2014, 11:40 9
может быть, на самом деле у вас основная задача - высоту строки изменить?
0
petrovichtim
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 26
13.03.2014, 12:01  [ТС] 10
Основная задача это нарисовать таблицу в которой будет без всяких скролов виден текст.
0
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
13.03.2014, 12:12 11
Цитата Сообщение от mobidevelop Посмотреть сообщение
5. На сколько я понял, ваш главный вопрос - как изменить высоту ячейки? для этого в делегате есть специальный метод. В вашем случае я бы создал ячейку, и в этом методе загружал в нее текст и спрашивал у нее же какая высота ей нужна.
Цитата Сообщение от petrovichtim Посмотреть сообщение
5. Что-то вроде того и хочу
Цитата Сообщение от petrovichtim Посмотреть сообщение
Вопрос до сих пор не снят.
Уже загадка

Цитата Сообщение от petrovichtim Посмотреть сообщение
Основная задача это нарисовать таблицу в которой будет без всяких скролов виден текст.
Полный ступор. Можно кусок дизайна?
0
petrovichtim
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 26
13.03.2014, 12:27  [ТС] 12
Нужно вот так
0
Миниатюры
Построение двух-колоночной таблицы в UITableView  
Vorona
Peace 2 all shining faces
672 / 534 / 84
Регистрация: 05.03.2010
Сообщений: 1,283
15.03.2014, 20:55 13
ну и что вам мешает создать кастомную ячейку в которую вы положите по два текст вью слева и справа и будете там отображать текст хоть в 10 рядов...
тут осталось только мозг включить если в инете "вагоны" примеров

таблица без скоролов - это обычное булевое свойство bounces, присвойте ему NO и будет счастье

насчет динамической высоты ячейки - тут тоже "вагоны" инфы, берите любой, даже помогу вам примитивный запрос в гугле составить "ios cell dynamic height"
0
zulkis
684 / 611 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
16.03.2014, 07:36 14
Цитата Сообщение от Vorona Посмотреть сообщение
таблица без скоролов - это обычное булевое свойство bounces, присвойте ему NO и будет счастье
Либо я не понял, что вы имеете ввиду, либо это не так.
bounces включает/выключает "визуальное отображение" того, что вы достигли края контента UIScrollView.
0
Vorona
Peace 2 all shining faces
672 / 534 / 84
Регистрация: 05.03.2010
Сообщений: 1,283
16.03.2014, 16:19 15
Цитата Сообщение от zulkis Посмотреть сообщение
Либо я не понял, что вы имеете ввиду, либо это не так.
ну насколько я понял, petrovichtim, хочет чтобы таблица не скролилась если высота ее контента меньше высоты таблицы
при включенном свойстве bounces ее можно будет "таскать" даже если это условие выполняется
0
petrovichtim
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 26
17.03.2014, 12:23  [ТС] 16
Спасибо дорогие товарищи за советы!
Вот этот урок на youtube снял все мои вопрсы
0
17.03.2014, 12:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2014, 12:23

Передать из UITableView в UIWebView
Всем привет! Являюсь новичком Swift. Помогите, пожалуйста, передать данные из...

UITableView запутался с вьюхой
Коллеги что-то я запутался. Есть storyboard, в нем UIViewController с...

UISearchBar & UITableView
Доброго времени суток вопрос. Переделываю приложение под iOS 7 добавил поиск по...


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

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

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