Удобный способ создания/повторного использования ячеек таблицы
+2Так выглядит стандартный способ создания/реиспользования ячейки (без custom XIB-интерфейса):- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"]; if (cell == nil) cell = [[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"Cell"]; // Add elements to the cell return cell; }
В БЛОГЕ IOSИдея и UITableView
+3Хочу поделиться с сообществом одной мыслью. Суть в следующем: иногда нужно создать простой UITableView с однотипными ячейками, который будет отображать в себе какую-либо коллекцию. Можно использовать стандартный подход с UITableViewDelegate и UITableViewDataSource. Но всегда хочется чтобы было быстрее и удобнее.Исходя из выше сказанного мне захотелось упростить эту процедуру. Я решил заменить вызовы методов UITableViewDataSource на блоки. Например:-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
Я заменил на вот такой блок:^(UITableViewCell* cell, NSIndexPath* indexPath, id item){ // код обработки ячейки }
В БЛОГЕ IOSАнонс TableKit — обертка над UITableView
0TableKit — небольшая библиотечка для работы с таблицами под iOS. По сравнению с традиционным подходом требует гораздо меньше кода и намного удобнее.Ячейки и секции таблицы организованы иерархически, что очень логично и читабельно.
Для создания примера таблицы достаточно несколько строчек кода:TKStaticCell* staticCell = [TKStaticCell cellWithText:@"Hello World!"]; TKTextFieldCell* textCell = [TKTextFieldCell cellWithText:@"Editing Text"]; TKSection* section = [TKSection sectionWithCells:staticCell, textCell, nil]; TKTableViewController* tvc = [[TKTableViewController alloc] initWithStyle:UITableViewStylePlain]; tvc.sections = [NSArray arrayWithObjects: section, nil]; [self.navigationController pushViewController:tvc animated:YES];
В БЛОГЕ IOSОБСУЖДАЮТ LIMEJELLYВзгляд на UITableView изнутри
0Продолжаю тему UITableView. В предыдущих статьях вы узнали как работать с UITableView, наполнять данными, создавать кастомные ячейки и какую ошибку не следует допускать. Одна из замечательных возможностей UITableView — это повторное использование ячеек. В этой статье я покажу одну из реализаций такого поведения. В качестве примера мы сделаем «кастомный» UITableView.Суть метода — есть два множества ячеек. Первое содержит в себе ячейки, которые в данный момент находятся на экране. Второе множество содержит в себе ячейки которых нет на экране и которые могут быть использованы снова. При прокрутке таблицы мы каждый раз пересчитываем индексы ячеек, которые должны быть на экране. Если нужно удаляем ячейки, которые должны «спрятаться» и показываем новые (доставая их из второго множества).В БЛОГЕ IOSСоздаем ячейки UITableViewCell в Interface Builder, Скринкаст!
+1Ну вот я снял свой первый скринкаст! Предлагаю его на всеобщее обозрение. Приму все замечания и предложения. Хотелось, чтобы вы ответили после просмотра на эти вопросы:- Нужна ли музыка в скринкасте?
- Нужно ли более детально объяснение?
- Стоит ли вместо голоса сделать субтитры?
Исходники можно загрузить тут. Приятного просмотра!В БЛОГЕ IOSВажно о UITableView
+1В последнее время все чаще начал замечать ошибку у iPhone-разработчиков (неопытных и даже у тех, кто считает себя опытными) связанную с использованием ячеек в UITableView. Разработчики не понимают, что в UITableView ячейки не создаются каждый раз, а используются уже созданные!Начнем по-порядку. Всем нам известен метод tableView:cellForRowAtIndexPath:. Привожу наиболее распространенный код (цифрами отмечены специальные места, о которых речь пойдет ниже):-(UITableViewCell*) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { // 1 static NSString* cellID = @"cellID"; UITableViewCell* cell; cell = [tableView dequeueReusableCellWithIdentifier:cellID]; if ( !cell ) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID] autorelease]; // 2 } // 3 return cell; }
Мы прекрасно знаем что должен возвращать этот метод. Он должен возвращать ячейку, которая вот-вот появиться на экране.В БЛОГЕ IOSНаполняем UITableView данными из Интернета. Пишем RSS-читалку
0Рассмотрим пример наполнения UITableView данными из Интернета. Данная задача встречается очень часто. Будем рассматривать в контексте написания RSS-читалки. Для того, чтобы полностью понять материал вам нужны знания о UITableView и парсинге XML. Эти обе темы затрагивались на этом сайте:В БЛОГЕ IOSВсе о UITableview: часть 3
0Как мы могли убедиться в предыдущих двух статьях, разработка приложений с таблицами в iOS ведется легко и быстро. В третьей статье мы рассмотрим как создать приложение, которое будет иметь уникальный дизайн и выделяться на обшем фоне.С помощью стандартного класса UITableViewCell мы можем вывести на экран текст, детальный текст и одну картинку. И расположение этих элементов внутри ячейки может быть не самым подходящим для нашего приложения (из первой статьи мы помним, что задавали стиль отображения при инициализации с помощью метода initWithStyle). Создадим ячейку, которая будет удовлетворять нашим требованиям: три текстовых поля, картинка и кнопка.В БЛОГЕ IOSВсе о UITableview: часть 2
0Во второй части статьи изучим методы по добавлению и удалению новых элементов в таблице.Воспользуемся исходником из первой части статьи. Для простоты предварительно удалим из него все записи касающиеся массива items2, делегатов titleForHeaderInSectionи sectionIndexTitlesForTableView. В navigation bar добавим новую кнопку, нажав на которую мы будем добавлять новую запись в таблицу. Для создания кнопки воспользуемся следующим кодом, который поместим в метод- (void)viewDidLoad { [super viewDidLoad]; UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addNew)]; self.navigationItem.leftBarButtonItem = addButton; [addButton release]; items = [[NSMutableArray alloc] init]; [items addObject:@"Яблоки"]; [items addObject:@"Апельсины"]; [items addObject:@"Груши"]; }
В БЛОГЕ IOSВсе о UITableView. Часть 1
0Для пользователя очень важно, чтобы данные были представлены в удобном виде. В этой статье мы рассмотрим как создается табличное представление данных в iOS. Во многих ситуациях оно просто незаменимо. Запустите XCode и выберите пункт «Create a new XCode Project». В появившемся меню выберите шаблон «Navigation-based Application». В следующем меню необходимо указать название проекта (Product Name). В данном примере я использую «Table». Далее укажите место куда будет сохранен проект.На данном этапе мы получили простое приложение, которое выводит на девайс пустую таблицу. В проекте у нас есть файлы RootViewController.h и RootViewController.m — это заголовочный и имплеметационный файлы для класса, который отвечает за вывод таблицы на экран девайса и обработку событий. Также присутствует файл RootViewController.xib, который отвечает за внешний вид. Открыв его можно увидеть, что вся форма состоит из одного элемента интерфейса «Table view».В БЛОГЕ IOS
Sunday, December 23, 2012
Примеры по UITableView http://idev.by/tag/uitableview/
http://idev.by/tag/uitableview/
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment