UIRefreshControl not showing indicator or title?

ios, ios7, objective-c, pull-to-refresh, uitabbarcontroller

Solution

Actually you have your refresh controller there in the tableView, but it is behind the navigationBar. (Sounds different, right), Here is the catch,

When you are using code in iOS7, by default the `UIViewController` takes the (`edgesForExtendedLayout`) whole screen. That means your (0,0) will start from the top left corner, underneath the navigationBar.

So your tableView is actually starting from there. So to get rid of it, you just specify the `edgesForExtendedLayout` for your `viewController` in your `viewDidLoad` Method.

if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
    self.edgesForExtendedLayout = UIRectEdgeNone;

After that it should be visible.

- Before above Fix:

- After the Fix.

hope that helps.

Problem

I want to implement Pull To Refresh to my `UITableViewController` by using `UIRefreshControl`. Here what i tried so far. ``` - (void)viewDidLoad { ..... ////********* Pull to refresh ************/ UIRefreshControl *refresh = [[UIRefreshControl alloc] init]; refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@"Pull to Refresh"]; refresh.tintColor = [UIColor magentaColor]; // [self.tableView addSubview:refresh]; // [self.refreshControl setEnabled:YES]; [refresh addTarget:self action:@selector(pullToRefresh:) forControlEvents:UIControlEventValueChanged]; self.refreshControl = refresh; } -(void)pullToRefresh:(UIRefreshControl *)refresh { [refresh beginRefreshing]; refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@"Refreshing.."]; [self loadRecentActivities]; } ``` But when i pull the tableview neither activity indicator nor title is visible, however `pullToRefresh` is called and table refreshed.My app supports iOS7.0+. What i'm missing? Any help would be appreciated? Edit: I'v tried with `[self.refreshControl setEnabled:YES];` and `[self.refreshControl setEnabled:YES];` as mentioned in my edited code, but still no luck. This is how my tableview looks like when i pull it to refresh- Final Solution: For table view background i was using ``` UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background.png"]]; self.tableView.backgroundView = imageView; ``` Refresh indicator and title was hidden behind the `self.tableView.backgroundView` instead use ``` [self.tableView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]]]; ``` and it solves my problem. also many thanks to Balram Tiwari please see his answer if you still have problem.

Original source

Related problems