我目前使用的是UITableViewController(PFQueryTableViewController),我想在TableView的顶部显示一个UIView。
理想情况下,我想在故事板中执行此操作,因此我可以轻松地为其添加其他标签/按钮。但是,我似乎无法弄清楚如何或如果你能在故事板中做到这一点。是吗?
我已经以编程方式尝试过。我首先在顶部创建了变量:
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会随之移动。
我想创建什么
理想情况下,我希望视图位于屏幕底部,当用户滚动时,不会移动。我希望它看起来的示例屏幕截图如下:
我已经读过,最好的方法是在其中使用带有UITableView的UIViewController,但我不想采用这种方法来查看我的应用程序已经构建了多少。
任何人都可以帮助我创造这种外观吗?提前致谢
答案 0 :(得分:4)
您必须从UIViewController
派生才能获得完整的布局控制。
然后只需在Storyboard中添加一个UITableView
实例。正常约束,边缘齐平,顶部齐平,并customView.top
= tableView.bottom
。为控制器提供正常插座。
您只需要记住让自定义UIViewController
采用通常的dataSource和委托协议,并在初始化时将自己指定为UITableView
的属性(通常为{{1} }})。
在viewDidLoad()
上有一个与清除所选单元相关的技巧,但viewDidAppear()
没有其他特别之处 - 它只是一个内置{UITableViewController
UIViewController
1}}属性和自动分配的委托以及非常不灵活的布局。
ADDENDUM基于如何解决这个问题的评论:这有点像询问是否有任何方法可以使螺丝刀将钉子钉入木材中。只需使用正确的工具。 tableView
的顶级view
属性是UITableViewController
本身。在布局调试模式下,请参见下面的库存UITableView
,其他内容,零代码。
这意味着整个视图树嵌入在滚动的实体中,因此所有子视图都将随之滚动。
在Storyboard中重新创建这个VC真的不是什么大不了的事。毕竟,UITableViewController
中的渲染代码以及您的dataSource和委托通常都不会发生变化。
ADDENDUM 2:
不熟悉Parse,这可能是不可能的。 (!!谢谢,Parse。)如果Parse没有为您提供可以自己嵌入的可分离cellForRowAtIndexPath
,则可能采用以下解决方法,但您需要了解Objective-C代码:< / p>
https://www.parse.com/questions/pfquery-tableview-for-uiviewcontroller