I'm trying to animate a tableview's offset down, then in the completion block would move it back up. But my code is not doing anything in the completion block:
-(void)viewDidAppear:(BOOL)animated {
if (TRUE) {
NSLog(@"animating table view");
[UIView animateWithDuration:.25
animations:^{
self.tableView.contentOffset = CGPointMake(self.tableView.contentOffset.x, self.tableView.contentOffset.y - 60);
}
completion:^(BOOL finished){
NSLog(@"completion block");
}];
}
}
"completion block" never gets outputted... any ideas?
EDIT:
Ok, so it has something to do with my UIREfreshControl:
- (void)viewDidLoad
{
[super viewDidLoad];
if (TRUE) {
UIRefreshControl *refresh = [[UIRefreshControl alloc] init];
refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@"Pull to Refresh"];
[refresh addTarget:self action:@selector(refreshTableView:) forControlEvents:UIControlEventValueChanged];
[self setRefreshControl:refresh];
}
}
When the refresh controll is added, it won't fire off the completion block. if i dont' add the control, it works as intended.
EDIT 2:
K, so if i scroll the table view, the completion block is then fired:
2013-02-15 13:37:06.266 [1922:14003] animating table view
2013-02-15 13:37:14.782 [1922:14003] completion block
the code as written should log "completion block" right after "animating table view", but it has a 8 second delay cause thats when i scrolled the table view myself.
how the "Pull to Refresh" looks like:
I used this and working fine. Its alternative solution.
[UIView animateWithDuration:0.5
delay:0.1
options: UIViewAnimationOptionCurveEaseOut
animations:^
{
CGRect frame = self.adBannerView.frame;
self.adBannerView.frame = frame;
}
completion:^(BOOL finished)
{
}];
try adding delay and options.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With