gpt4 book ai didi

ios - 在 Swift 中的 UITableViewController 顶部添加一个 UIView

转载 作者:搜寻专家 更新时间:2023-10-31 08:32:30 24 4
gpt4 key购买 nike

我目前使用的是 UITableViewController (PFQueryTableViewController),我想在 TableView 的顶部显示一个 UIView。

理想情况下,我想在 Storyboard中执行此操作,这样我就可以轻松地向其添加额外的标签/按钮。但是,我似乎无法弄清楚如何或是否可以在 Storyboard 中做到这一点。是吗?

我已经以编程方式尝试过。我首先在顶部创建了变量:

var filterLabelView:UIView = UIView()

然后我在 ViewDidLoad 中添加了以下内容:

filterLabelView.frame = CGRect(x: self.view.frame.width/2, y: self.view.frame.height/2, width: self.view.frame.width, height: 40)
filterLabelView.center = CGPointMake(self.view.frame.size.width / 2, self.view.frame.size.height / 2)
filterLabelView.backgroundColor = UIColor.redColor()
self.view.addSubview(filterLabelView) // See below

我也试过:

self.view.insertSubview(filterLabelView, aboveSubview: tableView)

这创建了红色的 UIView,但它似乎嵌入到 tableview 中,因为当我上下滚动时,View 会随之移动。

我想创造什么

理想情况下,我希望 View 位于屏幕底部,并且在用户滚动时移动。下面是我希望它看起来如何的示例屏幕截图:

enter image description here

我读到最好的方法是使用 UIViewController 和其中的 UITableView,但我宁愿不采用这种方法,看看我的应用程序已经构建了多少。

任何人都可以帮我创建这个外观吗?提前致谢

最佳答案

您必须从 UIViewController 派生才能获得完整的布局控制。

然后简单地在 Storyboard 中添加一个 UITableView 实例。正常约束它,edge-flush,top-flush,并且有customView.top = tableView.bottom。为您的 Controller 制作一个普通 socket 。

您只需要记住让您的自定义 UIViewController 采用通常的数据源和委托(delegate)协议(protocol),并将自己作为这些角色分配给 UITableView 的属性初始化(通常是 viewDidLoad())。

viewDidAppear() 上还有一个与清除所选单元格相关的技巧,但是 UITableViewController 没有其他特别之处——它只是一个 UIViewController 具有内置的 tableView 属性和自动分配的委托(delegate)以及非常不灵活的布局。

附录基于关于如何解决这个问题的评论:这有点像询问是否有任何方法可以让 Screwdriver 将钉子钉入木头。只需使用正确的工具。 UITableViewController 的顶级 view 属性是 UITableView 本身。请参见下面,一个普通的 UITableViewController,没有其他任何东西,零代码,处于布局 Debug模式。

这意味着整个 View 树都嵌入到一个滚动的实体中,因此所有 subview 都将随之滚动。

在 Storyboard 中重做这个 VC 真的应该没什么大不了的。毕竟,您在 cellForRowAtIndexPath 中的渲染代码以及您的 dataSource 和 delegate 通常根本没有改变。

附录 2:

不熟悉 Parse,这可能是不可能的。 (!!谢谢,Parse。)如果 Parse 没有为您提供一个您可以自己嵌入的可分离的 PFQueryTableView,则以下解决方法可能可行,但您需要了解 Objective-C代码:

https://www.parse.com/questions/pfquery-tableview-for-uiviewcontroller

enter image description here

关于ios - 在 Swift 中的 UITableViewController 顶部添加一个 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36365932/

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