Skip to content

TMOTableView includes RefreshControl LoadMoreControl FirstLoadControl, and you can customize it. It support iOS5+, support UIViewController & UITableViewController.

License

Notifications You must be signed in to change notification settings

yangwei0401/TMOTableView

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TMOTableView

TMOTableView includes RefreshControl LoadMoreControl FirstLoadControl, and you can customize it. It support iOS5+, support UIViewController & UITableViewController.

  • [2014/08/13] V1.1.3 Released! Fix RefreshControl and FirstControl Bug.

  • V1.1 Released! We reconstruct whole project, make it much more readable. And we add one more demo, TMOEmptyDataSetDemo, it's really easy to use rather than DNZEmptyDataSet.

Usage

Pod

pod 'TMOTableView'

Subclass(Must Do)

  • Xib Or StoryBoard -> subclass UITableView To TMOTableView

  • Code -> Init TMOTableView


Use FirstLoadControl

  • You use FirstLoadControl to avoid null content showed, and perform good user experience. We provide a default loadingView, and we provide a default failView. Further more, you could custom it.

  • It's really easy to use, see example code.


[self.tableView firstLoadWithBlock:^(TMOTableView *tableView, DemoTableViewController *viewController) {
    //do something load data jobs
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(8.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        if (arc4random() % 10 < 3) {
            //We try to make load data jobs fail, and you can see what happen.
            [tableView.myFirstLoadControl fail];
        }
        else {
            viewController.numberOfRowsInSection0 = 5;
            viewController.numberOfRowsInSection1 = 8;
            [tableView.myFirstLoadControl done];//You don't need to use [tableView reloadData].
        }
    });
} withLoadingView:customLoadingView withFailView:customFailView];

Use RefreshControl

  • RefreshControl, you know that! Our RefreshControl support iOS5+.

[self.tableView refreshWithCallback:^(TMOTableView *tableView, DemoTableViewController *viewController) {
    viewController.numberOfRowsInSection0 = arc4random() % 10;
    viewController.numberOfRowsInSection1 = arc4random() % 10;
    [tableView.myRefreshControl done];
} withDelay:1.5];//Really easy to use.
//Don't use self in block! Use tableView, viewController. It will 'Circular references'.

Use LoadMoreControl

  • You use LoadMoreControl to show more cells.

[self.tableView loadMoreWithCallback:^(TMOTableView *tableView, DemoTableViewController *viewController) {
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        if (arc4random() % 10 < 4) {
            //try to fail
            [tableView.myLoadMoreControl fail];
        }
        else {
            viewController.numberOfRowsInSection1 += 10;
            [tableView.myLoadMoreControl done];
        }
    });
} withDelay:0.0];

About

TMOTableView includes RefreshControl LoadMoreControl FirstLoadControl, and you can customize it. It support iOS5+, support UIViewController & UITableViewController.

Resources

License

Stars

Watchers

Forks

Packages

No packages published