您的位置:首页 > 产品设计 > UI/UE

iOS开发>>>UITableview实现更多数据显示方法

2013-10-16 20:09 816 查看
#import <UIKit/UIKit.h>

@interface iphone_tableMoreViewController : UIViewController 

<UITableViewDelegate,UITableViewDataSource>{ 

    

    IBOutlet UITableView *myTableView; 

    NSMutableArray *items; 



@property (nonatomic,retain) UITableView *myTableView; 

@property (nonatomic,retain) NSMutableArray *items; 

@end


#import "iphone_tableMoreViewController.h" 

@implementation iphone_tableMoreViewController 

@synthesize items,myTableView; 

- (void)viewDidLoad { 

    [super viewDidLoad]; 

    items=[[NSMutableArray alloc] initWithCapacity:0]; 

    for (int i=0; i<10; i++) { 

        [items addObject:[NSString stringWithFormat:@"cell %i",i]]; 

    } 



- (void)didReceiveMemoryWarning { 

    [super didReceiveMemoryWarning]; 

}


- (void)viewDidUnload { 

    items=nil; 

    self.myTableView=nil; 



- (void)dealloc { 

    [self.myTableView release]; 

    [items release]; 

    [super dealloc]; 

}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 

    int count = [items count]; 

    return  count + 1; 



- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *tag=@"tag"; 

    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:tag]; 

    if (cell==nil) { 

        cell=[[[UITableViewCell alloc] initWithFrame:CGRectZero 

                                     reuseIdentifier:tag] autorelease]; 

    }    

    if([indexPath row] == ([items count])) { 

        //
创建loadMoreCell 

        cell.textLabel.text=@"More.."; 

    }else { 

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

    } 

    return cell; 



- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

   


    if (indexPath.row == [items count]) { 

        UITableViewCell *loadMoreCell=[tableView cellForRowAtIndexPath:indexPath]; 

        loadMoreCell.textLabel.text=@"loading more …"; 

        [self performSelectorInBackground:@selector(loadMore) withObject:nil]; 

       [tableView deselectRowAtIndexPath:indexPath animated:YES]; 

        return; 

    } 

    //
其他cell的事件 

    



-(void)loadMore 



    NSMutableArray *more; 

    more=[[NSMutableArray alloc] initWithCapacity:0]; 

    for (int i=0; i<10; i++) { 

        [more addObject:[NSString stringWithFormat:@"cell ++%i",i]]; 

    } 

    //
加载你的数据 

    [self performSelectorOnMainThread:@selector(appendTableWith:) withObject:more waitUntilDone:NO]; 

    [more release]; 



-(void) appendTableWith:(NSMutableArray *)data 



    for (int i=0;i<[data count];i++) { 

        [items addObject:[data objectAtIndex:i]]; 

    } 

    NSMutableArray *insertIndexPaths = [NSMutableArray arrayWithCapacity:10]; 

    for (int ind = 0; ind < [data count]; ind++) { 

        NSIndexPath    *newPath =  [NSIndexPath indexPathForRow:[items indexOfObject:[data objectAtIndex:ind]] inSection:0]; 

        [insertIndexPaths addObject:newPath]; 

    } 

   [self.myTableView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationFade]; 

    



@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: