Поиск:

Ответ в темуСоздание новой темы Создание опроса
> UIActivityIndicator + UITableCell 
:(
    Опции темы
fris
Дата 21.7.2012, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 15.2.2012

Репутация: нет
Всего: нет



Привет.

Нужно в табличке сделать ячейку "Загрузить еще". По ней кликаешь идет догрузка таблички и появляется крутящийся UIActivityIndicator.
Есть вариант создания кастомного cell с индикатором на нем.

Но хочу так попробовать:

Код


#import "ListNewsController.h"

@implementation ListNewsController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{
    
    return [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
}

#pragma mark - View lifecycle

- (void)viewDidLoad {
    
    [super viewDidLoad];

    activityIndicator = [[UIActivityIndicatorView alloc] 
                         initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray] ;
    activityIndicator.hidesWhenStopped = true;
 
}

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    int storyIndex = [indexPath indexAtPosition: [indexPath length] - 1];    
    int nEdge = [self.RSSData.arrayItems count];
   
    static NSString *MyIdentifier = @"MyIdentifier";
    static NSString *MyIdentifierDefault = @"MyIdentifierDefault";
    
    UITableViewCell *cell;
    
    if (storyIndex == nEdge)
        cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifierDefault];
    else
        cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];   
    
    if (cell == nil)
    {
        if (storyIndex == nEdge)
            cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifierDefault] autorelease];
        else
            cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:MyIdentifier] autorelease];    
    }
    
    //cell.selectionStyle = UITableViewCellSelectionStyleNone;
    cell.textLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:13.0f];
    if (storyIndex == nEdge)
    {
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
        cell.textLabel.text = @"Загрузить еще";
        cell.textLabel.textAlignment = UITextAlignmentCenter;
         
        CGRect fr = cell.frame;
        [activityIndicator setFrame:CGRectMake(fr.origin.x + 10 , fr.origin.y + fr.size.height / 3, activityIndicator.frame.size.width, activityIndicator.frame.size.height)];
        [self.view addSubview:activityIndicator];
    }
     
     if ([activityIndicator isAnimating])
        [activityIndicator stopAnimating];
    
    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    
    int storyIndex = [indexPath indexAtPosition: [indexPath length] - 1];
    
    int nEdge = [self.RSSData.arrayItems count];
    if (storyIndex == nEdge)
    {
        [activityIndicator startAnimating];
        //load data...
        [self.tableView reloadData];
    }
}

@end



Когда нажимается ячейка соотв, индикатор не появляется и соотв не заводится. Нужно как-то перегрузить то ли контролы на форме то ли еще что.  Вроде как индикатор объявлен, как отдельный объект и отрисован на формочке в соотв. месте, но при нажатии "не заводится". Шаманил-шаманил - но получилось что-то, хотя вроде ничего военного нету.

Какие будут предложения именно в данной реализации?

Это сообщение отредактировал(а) fris - 22.7.2012, 16:59
PM MAIL   Вверх
Maksys
Дата 23.7.2012, 05:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Future Splasher
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 15.6.2005
Где: Екатеринбург

Репутация: нет
Всего: 17



Но если в крадце, то индикатор и сам объект cell, в Вашем случае, вообще не связанные объекты. это видно по строчке 
Код

[self.view addSubview:activityIndicator];


попробуйте заменить на 
Код

[cell.view addSubview:activityIndicator];

Ну и надо бы понять, что получилось и что все же хотелось?

Код

[self.tableView reloadData];

Должен вызываться тригером из фичреквеста.

Добавлено через 18 секунд
Ну если вы работаете с локальной базой



--------------------
 С уважением, BiMaWa™©.
user posted image
user posted image
PM MAIL ICQ Skype GTalk   Вверх
fris
Дата 23.7.2012, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 15.2.2012

Репутация: нет
Всего: нет



Да, cell и indicator не связаны, хотел просто разместить в нужном месте indicator на view и запустить при нажатии на ячейку "Загрузить еще".

В cell нету свойства view, есть в cell.imageview.

Данные подгружаются и из бд и из инета в память, потом в табличку через ReloadData.

Не понятно что значит 
Цитата
 Должен вызываться тригером из фичреквеста. 
. Пример бы какой-нить...
PM MAIL   Вверх
Maksys
Дата 27.7.2012, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Future Splasher
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 15.6.2005
Где: Екатеринбург

Репутация: нет
Всего: 17



Цитата(fris @  23.7.2012,  14:53 Найти цитируемый пост)
Пример бы какой-нить... 

Создайте простой проект, к примеру Master-Detail и установите галочку use Core Data, чтоб xcode сформировал пример работы с Core Data. В masterViewController.m  должен содержать список нужных функцией под меткой: 

#pragma mark - Fetched results controller

Ну а дальше документация рулит smile



--------------------
 С уважением, BiMaWa™©.
user posted image
user posted image
PM MAIL ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | iOS | Следующая тема »


 




[ Время генерации скрипта: 0.0398 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.