TableViewControllerがあります:
ご覧のとおり、上部に独自のカスタムバーがあります。UITableビューはstatic
1つにすぎず、UITableViewの上部にビューを追加します。
TableViewを上にスクロールすると、次のような画像になりますが、必要ありません。tableViewのスクロールを制限できる簡単なコードはありますか?
TableViewControllerがあります:
ご覧のとおり、上部に独自のカスタムバーがあります。UITableビューはstatic
1つにすぎず、UITableViewの上部にビューを追加します。
TableViewを上にスクロールすると、次のような画像になりますが、必要ありません。tableViewのスクロールを制限できる簡単なコードはありますか?
UITableView は UIScrollView のサブクラスであるため、この UIScrollViewDelegate メソッドを使用して、上部境界線より上のスクロールを禁止できます。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView == self.tableView) {
if (scrollView.contentOffset.y < 0) {
scrollView.contentOffset = CGPointZero;
}
}
}
uitableview のバウンス プロパティを NO に設定する必要があります。
UITableView *tableView;
tableView.bounces = NO;
編集:インターフェースビルダーからのバウンスのチェックを外すこともできることに注意してください
詳細については、この回答を確認してくださいスクロール時にUITableViewの垂直バウンスを無効にします
私が正しく理解している場合は、カスタムバーをテーブルビューの一部として設定しています。ビューcustom bar
を設定するときに、テーブルビューではなく別のビューに配置し、カスタムバーの下にテーブルビューを配置します。カスタム バーと静的テーブル ビューを持つカスタム ビュー コントローラーを作成する必要があります。
UIViewController
ではなく、タイプとしてView Controllerオブジェクトを作成する必要がありますUITableViewController
。次に、カスタム バーをサブビューとして に追加しますself.view
。別のものを作成しUITableView
、カスタム バーの下に追加します。これにより、カスタム バーが静的になり、テーブル ビューがスクロール可能になります。
アップデート:
テーブルビューを静的にするには、次のように設定する必要があります
tableView.scrollEnabled = NO:
これがうまくいくかどうか教えてください。
マティアスの答えの迅速なバージョン:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if (scrollView == self.ordersTable) {
if (scrollView.contentOffset.y < 0) {
scrollView.contentOffset = CGPoint.zero;
}
}
}