Как добавить элементы в таблицу при прокрутке iphone? - PullRequest
2 голосов
/ 06 января 2011

Я использую UITableView, список элементов из веб-службы ..

Что мне нужно сделать, так это сначала вызвать 20 элементов из веб-службы и отобразить их в списке, когда пользователь прокрутит вниз, вызовет еще 20 записей из веб-службы и добавит в просмотр таблицы.

как это сделать?

Ответы [ 3 ]

1 голос
/ 06 января 2011

Вы можете загрузить свои 20 элементов из веб-службы и сохранить их в массиве.Затем создайте табличное представление и отобразите эти 20 элементов.Если вы хотите, чтобы действие прокрутки инициировало загрузку, просто станьте делегатом UIScrollView табличного представления.В противном случае вы можете просто нажать кнопку «Загрузить больше».Если вы хотите загрузить больше, просто загрузите данные и обновите количество элементов в списке и перезагрузите представление таблицы.

1 голос
/ 28 октября 2014
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
static int m=5;
static int resultsSize = 5; ;
- (void)viewDidLoad {
    [super viewDidLoad];


    recipes=[NSArray arrayWithObjects:@"one",@"two",@"three",@"four",@"five",@"six",@"seven",@"eight",@"nine",@"ten",@"eleven",@"twelve", nil];
    // Do any additional setup after loading the view, typically from a nib.

}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{

    return m;

    }
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *simpleTableIdentifier = @"SimpleTableItem";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
    }

    cell.textLabel.text = [recipes objectAtIndex:indexPath.row];


    return cell;
}

- (void)scrollViewDidEndDragging:(UIScrollView *)aScrollView
                  willDecelerate:(BOOL)decelerate
{
    CGPoint offset = aScrollView.contentOffset;
    CGRect bounds = aScrollView.bounds;
    CGSize size = aScrollView.contentSize;
    UIEdgeInsets inset = aScrollView.contentInset;
    float y = offset.y + bounds.size.height - inset.bottom;
    float h = size.height;

    float reload_distance = 50;
    if(y > h + reload_distance) {

        NSInteger i;

        NSMutableArray *arrayWithIndexPaths = [NSMutableArray array];
        for ( i = resultsSize; i < resultsSize + 2; i++)
        {
            [arrayWithIndexPaths addObject:[NSIndexPath indexPathForRow:i inSection:0]];


        }

        m=resultsSize+2;
        resultsSize =resultsSize+2;
        [table insertRowsAtIndexPaths:arrayWithIndexPaths withRowAnimation:UITableViewRowAnimationFade];

    }
}

//}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 50;
}
@end
0 голосов
/ 06 января 2011

Это нереально сделать по частям.при просмотре времени загрузки вызовите веб-сервис и создайте массив опций, затем вызовите функцию источника данных таблицы для просмотра таблицы.

...