テーブルビューのオフセットを下にアニメーション化しようとしていますが、完了ブロックで上に移動します。しかし、私のコードは完了ブロックで何もしていません:
-(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");
}];
}
}
「完了ブロック」が出力されることはありません...何かアイデアはありますか?
編集:
さて、それは私の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];
}
}
更新制御が追加されると、完了ブロックは起動されません。コントロールを追加しない場合は、意図したとおりに機能します。
編集2:
Kなので、テーブルビューをスクロールすると、完了ブロックが発生します。
2013-02-15 13:37:06.266 [1922:14003] animating table view
2013-02-15 13:37:14.782 [1922:14003] completion block
記述されたコードは、「テーブルビューのアニメーション化」の直後に「完了ブロック」をログに記録する必要がありますが、テーブルビューを自分でスクロールすると、8秒の遅延が発生します。
「PulltoRefresh」は次のようになります。