私はテーブルのヘッダービューにUISearchBarを持っています。アニメーションが発生すると、いつでも。行を削除または挿入すると、ヘッダービューがスクロールダウンします。テーブルビューに、ヘッダービューを(自動的に)スクロールしてはならないことを伝える方法はありますか? (ユーザーだけがそれをスライドさせることができるはずです)行アニメーションがTableHeaderViewをスクロールしないようにするにはどうすればよいですか?
0
A
答えて
0
Google & StackOverFlowでの広範な検索の後、私は正しい手がかりを見つけました:UIScrollView
。私が探して、最終的に実装された実際のソリューションは、別の質問で見つけることができます:Change Default Scrolling Behavior of UITableView Section Header
私は、次の特性を有することが、解決策を少しカスタマイズした:
- 行のアニメーションは、テーブルビューを下にスクロールすることができますヘッダービューが表示されない場合
- ヘッダービューを除き、上部(「スクロールトップ」)をクリックすると、ヘッダービューを除外して上部にスクロールする
- ヘッダービューが部分的に表示される場合は、完全に見えるので、完全に表示されます このソリューションの
コード:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat searchBarHeight = self.searchBar.frame.size.height;
if (scrollView.contentOffset.y >= searchBarHeight) {
scrollView.contentInset = UIEdgeInsetsMake(-searchBarHeight, 0, 0, 0);
} else {
scrollView.contentInset = UIEdgeInsetsZero;
}
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
if (scrollView.contentOffset.y < self.searchBar.frame.size.height && scrollView.contentOffset.y > 0) {
[scrollView setContentOffset:CGPointZero animated:YES];
}
}
このコードはUITableView
のデリゲートとして機能UITableViewController
、内部に実装されています。反対側のUITableView
はUIScrollView
から継承されています。これにより、これらのメソッドが利用可能になり、すべての魔法が実行されます。
説明する文は、contentOffset
とcontentInset
で、その意味を理解するのに少し時間がかかりました。
- オフセットは、単にどれだけ目に見えるコンテンツを伝える
CGPoint
、である、すなわち、セクションテーブルビューの&セルは、左上から下にスクロールされます。ヘッダービューとフッタービューが含まれているため、(0、0)のオフセットは、テーブルビューが上にスクロールされることを示します。 (0、100)のオフセットは、テーブルビューが100ピクセル下にスクロールされることを意味します(ポイントのx値は通常使用されません)。 - インセットは非常に興味深いプロパティで、
UIScrollView
の境界を四重極(top, left, bottom, right)
として定義します。したがって、これらの境界を越えるとテーブルビューがバウンスします。デフォルト値は(0、0、0、0)です。つまり、最初または最後のセルの上または下にスクロールすると、テーブルビューがバウンスします。したがって、(-44,0,0,0)の値は、バウンス境界をテーブルビューの原点の44ピクセル下に下げます。ヘッダービューは44ピクセル高いので、ヘッダービューを画面の表示部分にスクロールするたびにバウンスされます。これにより、行アニメーションが(44,0)のオフセットの下にテーブルをスライドさせないようにし、「slide to top」コマンドはテーブルビューを(44,0)のオフセットにスライドさせます。
私は役立つことを願っています。 :)
関連する問題
- 1. ハッシュタグリンクがページをスクロールしないようにするにはどうすればよいですか?
- 2. スクロールビューで画像がスクロールしないようにするにはどうすればよいですか?
- 3. iOS Music AppでスクロールしながらUINavigationBarアニメーションを実現するにはどうすればよいですか?
- 4. JScrollPaneが自動的にスクロールしないようにするにはどうすればいいですか?
- 5. Android WebView requestFocus:スクロールしないようにするにはどうすればよいですか?
- 6. this.form.reset()がフォームアクションを実行しないようにするにはどうすればよいですか?
- 7. GrailsがIntellijで実行されないようにするにはどうすればよいですか?
- 8. iframeでfocus()が実行されないようにするにはどうすればよいですか?
- 9. 実行タイムアウトエラーメッセージが表示されないようにするにはどうすればよいですか?
- 10. TextBoxに行を追加/削除しないようにするにはどうすればよいですか?
- 11. MySQLで重複行を挿入しないようにするにはどうすればよいですか?
- 12. 行の長さが10を超えないようにするにはどうすればよいですか?
- 13. rootがgit pullを実行しないようにするにはどうすればいいですか?
- 14. WPFで羊皮紙スクロールのようにロールアウトするようにコントロールをアニメーション化するにはどうすればよいですか?
- 15. スクロール可能なdivが一時的にスクロールしないようにするにはどうすればよいですか?
- 16. これらのアニメーションを異なる時間にアニメーション化するにはどうすればよいですか?
- 17. アンドロイドスタジオのテキストをアニメーションにするにはどうすればよいですか?
- 18. ドラッグ中にgwt-dndをスクロールできるようにするにはどうすればよいですか?
- 19. TextFieldスクロールでテキストを作成するにはどうすればよいですか? (HTMLのマーキーのような)
- 20. 流体iframeのfacebookアプリケーションで滑らかなスクロールを行うにはどうすればよいですか?
- 21. DBGrid:行が選択されないようにするにはどうすればいいですか?
- 22. ReSharperがソリューションでフォルダを作成しないようにするにはどうすればよいですか?
- 23. UIScrollViewをコンテンツエリアからスクロールしてユーザーに(一時的に)スクロールさせないようにするにはどうすればよいですか?
- 24. LinqがGUIDを追加しないようにして、SQL Serverで実行できるようにするにはどうすればよいですか?
- 25. CAKeyframeAnimationでCATransform3Dをアニメーション化するにはどうすればよいですか?
- 26. PlayNでサークルをアニメーション化するにはどうすればよいですか?
- 27. TreeViewをプログラムでスクロールするにはどうすればよいですか?
- 28. WPFリストビューをプログラムでスクロールするにはどうすればよいですか?
- 29. コミットが決して削除されないようにするにはどうすればよいですか?
- 30. これらのdivが重複しないようにするにはどうすればよいですか?