gpt4 book ai didi

ios - 在 UITableViewController 底部锚定 View

转载 作者:行者123 更新时间:2023-12-01 19:01:59 26 4
gpt4 key购买 nike

我正在构建一个 View ,它是 UITableView ,但是我想锚定一个“写评论”UITextField在屏幕底部。您可以在“ secret ”应用程序的这些屏幕截图中看到一个示例 - 无论您向上还是向下滚动表格 View 项目,“写评论(匿名)”和“发布”按钮都固定在屏幕底部.

enter image description here

enter image description here

实现这一目标的最佳方法是什么?

我应该嵌入 UITableViewController变成 UIViewControllerUIView锚定到屏幕底部,而tableview 锚定到该 View 的顶部?

这是某种UITableView节页脚?

非常感谢任何建议。

最佳答案

你可以继承 UITableView并添加一个底部 View (不要与 tableview 的 footerView 混淆)。由于 UITableViewUIScrollView 的子类,您可以更改其contentInsets这样表格 View 的内容仍将滚动到您的底部 View 上方。
tableView.contentInsets = UIEdgeInsetsMake(0, 0, 0, bottomViewHeight);
下一步是使底部 View 具有粘性,即与 tableview 的底部一起 float 。您可以通过多种方式实现这一目标。这里有两个建议:

1)直接操作框架

通过符合 UITableViewDelegate你自动符合UIScrollViewDelegate .您可以通过检查 UITableView.h 中的协议(protocol)声明来看到这一点。 :
@protocol UITableViewDelegate<NSObject, UIScrollViewDelegate>
然后执行scrollViewDidScroll:(UIScrollView *)scrollView并更改底部 View 的 y 偏移量以始终将其定位在 View 的底部。 UIScrollViewcontentOffset属性用于确定 ScrollView 向下滚动了多远。每次 ScrollView 滚动时都会调用此方法,因此看起来底部 View 会粘在表格 View 的底部。

2)使用自动布局

虽然仍在更改 contentInsets如上,您可以通过使用自动布局约束来实现粘性效果。通过将底部 View 固定到 ScrollView 的边缘,它会自动为您创建粘性效果。到目前为止,这是我推荐的方法,因为它节省了代码行,同时使用了尽可能高的抽象级别。

我用 this categoryFlorian Kugler在代码中实现自动布局时。

This technical note ,但与该问题不严格相关,描述了如何将自动布局与 ScrollView 一起使用。

关于ios - 在 UITableViewController 底部锚定 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22168479/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com