Reputation: 1369
I start with programming under XCode 5 with iOS 7 SDK. And when I create UITableViewController
with UIRefreshControl
with 'attributedText' I've got text overlayed on top of UIRefreshControl
graphics (circle progress animation).
But when I pull down and release my finger, text jumps to its normal position. Why it happened?
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(updateDeviceList) forControlEvents:UIControlEventValueChanged];
refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"Update Devices States"];
self.refreshControl = refreshControl;
Before pulling down to the end:
After UIRefreshControl
release:
Upvotes: 19
Views: 9860
Reputation: 22930
Call layoutIfNeeded
after setting title
self.refreshControl = [[UIRefreshControl alloc] init];
[self.refreshControl addTarget:self action:@selector(updateDeviceList) forControlEvents:UIControlEventValueChanged];
self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"Update Devices States"];
[self.refreshControl layoutIfNeeded];
Upvotes: 0
Reputation: 582
Please try this.
- (void)viewDidLoad
{
[super viewDidLoad];
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"Pull to Refresh"];
[refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
self.refreshControl = refreshControl;
dispatch_async(dispatch_get_main_queue(), ^{
[self.refreshControl beginRefreshing];
[self.refreshControl endRefreshing];
});
}
Upvotes: 27
Reputation: 2974
Change your code to following
self.refreshControl = [UIRefreshControl new];
[self.refreshControl addTarget:self action:@selector(updateDeviceList) forControlEvents:UIControlEventValueChanged];
self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"Update Devices States"];
self.refreshControl = refreshControl;
That should fix your problem
Upvotes: -3