Ios 在Swift中的UITableViewController顶部添加UIView
我目前使用UITableViewController(PFQueryTableViewController),我希望在TableView顶部显示UIView 理想情况下,我希望在情节提要中这样做,这样我就可以轻松地向其中添加其他标签/按钮。然而,我似乎不知道如何或者是否可以在故事板中做到这一点。是这样吗 我已经用编程的方式尝试过了。我首先在顶部创建了变量:Ios 在Swift中的UITableViewController顶部添加UIView,ios,swift,uitableview,uiview,Ios,Swift,Uitableview,Uiview,我目前使用UITableViewController(PFQueryTableViewController),我希望在TableView顶部显示UIView 理想情况下,我希望在情节提要中这样做,这样我就可以轻松地向其中添加其他标签/按钮。然而,我似乎不知道如何或者是否可以在故事板中做到这一点。是这样吗 我已经用编程的方式尝试过了。我首先在顶部创建了变量: var filterLabelView:UIView=UIView() 然后我在ViewDidLoad中添加了以下内容: filterLab
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中,因为当我上下滚动时,视图会随之移动
我要创建的内容
理想情况下,我希望视图位于屏幕底部,当用户滚动时,不移动。下面是我希望它看起来如何的示例屏幕截图:
我已经读到,最好的方法是使用一个内置UITableView的UIViewController,但我不希望看到我的应用已经构建了多少
有人能帮我打造这个造型吗?提前感谢您必须从
UIViewController
派生才能获得完整的布局控制
然后只需在情节提要中添加一个UITableView
实例。正常约束它,边缘齐平,顶部齐平,并具有customView.top
=tableView.bottom
。为控制器设置一个正常的插座
您只需要记住让自定义的UIViewController
采用常用的数据源和委托协议,并在初始化时将自己作为这些角色分配给UITableView
的属性(通常是viewDidLoad()
)
当启用viewdideappease()
时,还有一个技巧与清除所选单元格有关,但是UITableViewController
没有什么特别之处——它只是一个UIViewController
,具有内置的tableView
属性,并自动分配委托和非常不灵活的布局
补遗是基于对如何解决这个问题的评论:这有点像是问有没有办法让螺丝刀把钉子钉进木头里。只要使用正确的工具。UITableViewController
的顶级view
属性是UITableView
本身。请参见下文,在布局调试模式下,库存UITableViewController
,除此之外没有任何代码
这意味着整个视图树嵌入到一个滚动的实体中,因此所有子视图都将随之滚动
在故事板中重做这个VC真的没什么大不了的。毕竟,您在cellforrowatinexpath
中的渲染代码以及您的数据源和委托通常不会发生任何更改
增编2:
由于不太了解解析,这可能是不可能的。(!!谢谢,Parse。)如果Parse没有为您提供可嵌入自己的可分离PFQueryTableView
,以下解决方法可能是可行的,但您需要了解Objective-C代码:
谢谢您的回复。事实上我已经读过了。这是实现这一目标的唯一途径吗?我的应用程序现在已经构建得很满了,我想尽量避免重新构建我的主屏幕。你认为还有别的办法吗?谢谢你advance@Nick89使用
UIViewController
可能是最好的方法,除非您的tableview
只有一个部分,否则您可以设置viewForHeaderInSection
并使其“粘性”。@kye Hi-kye,您能告诉我如何添加它吗,我以前没有添加过?@BaseZen感谢您再次修改您的答案,尽管我是使用PFQueryTableViewController设置的,但我是否仍然可以转换为普通VC?@Nick89您只需在您的tableview中添加一个viewForHeaderInSection
。我认为默认情况下,UITableView
会粘贴标题(滚动时会显示标题)。请记住,这不会重新创建所需的布局(显示屏幕截图),最好的选择是上面回答中所述的UIViewController