あなたもそれを行うことができます(あなたのテーブルやVCをネストするUITableViewController
通常の必要はありません)UIViewController
SafeAreasを使用して更新されたiOS11+
自動レイアウトを使用して、ビューを下に維持したい
{
[self.view addSubview:self.bottomView];
[self.bottomView setTranslatesAutoresizingMaskIntoConstraints:NO];
UILayoutGuide * safe = self.view.safeAreaLayoutGuide;
[NSLayoutConstraint activateConstraints:@[[safe.trailingAnchor constraintEqualToAnchor:self.bottomView.trailingAnchor],
[safe.bottomAnchor constraintEqualToAnchor:self.bottomView.bottomAnchor],
[safe.leadingAnchor constraintEqualToAnchor:self.bottomView.leadingAnchor]]];
[self.view layoutIfNeeded];
}
ビューが常に上にあることを確認します
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
[self.view bringSubviewToFront:self.bottomView];
}
以前の古いソリューション
テーブルをスクロールして、「フローティング」ビューの位置を調整する必要があります。これで問題ありません。
UITableViewControllerを使用している場合は、
UITableViewの上部にビューをフロートさせたい場合
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGRect frame = self.floatingView.frame;
frame.origin.y = scrollView.contentOffset.y;
self.floatingView.frame = frame;
[self.view bringSubviewToFront:self.floatingView];
}
UITableViewの下部にビューをフロートさせたい場合
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGRect frame = self.floatingView.frame;
frame.origin.y = scrollView.contentOffset.y + self.tableView.frame.size.height - self.floatingView.frame.size.height;
self.floatingView.frame = frame;
[self.view bringSubviewToFront:self.floatingView];
}
それがあなたの質問に対する本当の答えだと思います