我正在构建一个UITableView
的视图,但是我想在屏幕底部锚定“编写评论”UITextField
。您可以在“秘密”应用程序的这些屏幕截图中看到此示例 - “写一条评论(匿名)”和“发布”按钮固定在屏幕底部,无论您是向上还是向下滚动桌面视图项目
实现这一目标的最佳方法是什么?
我是否应该将UITableViewController
嵌入到UIViewController
中,UIView
锚定在屏幕底部,而tableview固定在此视图的顶部?
这是某种UITableView
部分页脚吗?
任何建议都非常感谢。
答案 0 :(得分:2)
您可以继承UITableView
并添加底部视图(不要与tableview的footerView
混淆)。由于UITableView
是UIScrollView
的子类,因此您可以更改其contentInsets
,以便tableview的内容仍会在您的底部视图上方滚动。
tableView.contentInsets = UIEdgeInsetsMake(0, 0, 0, bottomViewHeight);
下一步是使底视图变粘,即浮动在tableview的底部。您可以通过多种方式实现这一目标。以下是两条建议:
通过符合UITableViewDelegate
,您自动符合UIScrollViewDelegate
。您可以通过检查UITableView.h
中的协议声明来看到这一点:
@protocol UITableViewDelegate<NSObject, UIScrollViewDelegate>
然后实现scrollViewDidScroll:(UIScrollView *)scrollView
并将底视图的y偏移更改为始终将其放置在视图的底部。 UIScrollView
的{{1}}属性用于确定滚动视图滚动的距离。每次滚动视图滚动时都会调用此方法,因此底部视图会显示在桌面视图的底部。
虽然仍然如上所述更改contentOffset
,但您可以通过使用自动布局约束来实现粘滞效果。通过将底部视图固定到滚动视图的边缘,它将自动为您创建粘性效果。这是我推荐的方法,因为它保存了代码行,同时它使用了最高级别的抽象。
在代码中实现自动布局时,this category使用Florian Kugler。
This technical note,但与问题没有严格关联,描述了如何使用滚动视图自动布局。
答案 1 :(得分:1)
我有应用内聊天(比如whatsapp),我有以下结构:
UIViewController
\
- View
\
- UITableView
- UIView (with textfied)
我认为这是最好的方法,因为你不会将表格数据与其他任何东西混合在一起,而且你不必在代码中加入各个部分
答案 2 :(得分:0)
如果您要求在屏幕中一次只显示一张图片相关信息,请按照它将帮助您的过程。
首先拍摄一个视图控制器,然后拍摄一个图像视图,然后将所需的按钮添加到图像视图下方,仅在图像视图下方取一个桌面视图(如果有评论显示tableview。如果没有可用的评论显示标签为“be首先评论“)。
希望这会有所帮助