2017-04-11 9 views
1

私はどのようにUITableViewを特定の位置にスクロールすることができる多くの答えを見ました。setContentOffsetを使用して特定の位置にスクロールUITableViewが正しく動作しません - ObjC

私はsetContentOffsetを使用して特定の位置にスクロールします。

私は奇妙な問題を抱えています。 tableViewが半分スクロールされている場合は、setContentOffsetが正常に動作しています。しかし、tableViewの最後までスクロールしてからsetContentOffsetを使用すると、テーブルビューが少しスクロールします。

私のsetContentOffset値はCGPoint(0,199)です。

[self.tableView setContentOffset:CGPointMake(0,199) animated:NO]; 

setContentOffsetを使用します。次にcontentOffsetUITableViewを確認します。 169です。

私は正確に何が問題なのか理解できません。

編集::

私は次のコードを使用しています。最後のセル内のボタンが押された場合:

- (void)userPressedSubmitButtonOnLastCell 
{ 

[self updateData]; 
[self.tableView reloadData]; 
[self performSelector:@selector(scrollTableView) withObject:nil afterDelay:0.5]; 
} 

- (void)scrollTableView 
{ 
[self.tableView setContentOffset:CGPointMake(0,199) animated:NO]; 
} 
+0

あなたの 'constraints'が適切であることを確認してください – Jack

+0

はい私の制約は適切です@Janesh – Dalvik

+0

scrollViewデリゲートコード – karthikeyan

答えて

1

なぜあなたはtableView scrollToRowAtIndexPath:またはtableView scrollRectToVisible:(CGRect)を使用していませんか?これにより、特定の行または矩形にスクロールすることができます。 UIScrollViewにはContentOffsetがより適しています。

+0

私のテーブルビューの最後に(最後の行に)、それらは 'UIButton'です。そのボタンをクリックすると、上部のテーブルビューをスクロールする必要があります。 'tableView scrollToRowAtIndexPath:'を使用することはできません。なぜなら私はヘッダ(テーブルビューヘッダ)も持っているからです。ヘッダーの一部も表示する必要があります。 – Dalvik

+0

私はあなたの質問がトップにではなく、ボトムにスクロールしていると思ったのですか? – Koen

+0

私はあなたが 'tableView scrollRectToVisible:'を使うことができ、rect y = 0を設定して、テーブルの一番上にスクロールすることができると思います。 –

関連する問題