结合 UIView 和 UITableView
Posted
技术标签:
【中文标题】结合 UIView 和 UITableView【英文标题】:Combine UIView and UITableView 【发布时间】:2016-06-29 00:39:40 【问题描述】:嗨,是否可以将 UIView 与 UITableView 结合起来并将其作为单个对象引用?我目前将两者结合为堆栈,但我觉得有更好的方法来做到这一点。谢谢
【问题讨论】:
你能提供一个例子来说明你想如何引用它们吗?如果是带有 uitableview 下面的 uiview,更合适的方式是使用 uitablewview 标头 你这样做的目的是什么? 【参考方案1】:它们是两个不同的对象,一个属性不能引用两个不同的视图。但是,您可以为 ViewController 中的两个视图或任何祖先视图中的两个视图使用 IBOutlet。
class MyViewController : UIViewController
@IBOutlet var tableView : UITableView!
然后,您只需将特定视图的 reference outlet
从 Storyboard 拖到视图控制器即可。有关这方面的信息:
https://developer.apple.com/library/ios/recipes/xcode_help-IB_connections/chapters/CreatingOutlet.html
请注意,我没有为您的 UIView 添加属性,因为我认为它已经是控制器的主视图。同样,您可以对主视图进行子类化,为表格视图添加一个出口,并将其用作参考出口。
【讨论】:
【参考方案2】:在我看来,有两种方法可以解决您的需求:
选项 1. 使用表格视图标题视图。我想你想将一个名为topView
的视图与一个表格视图结合起来。致电tableView.tableHeaderView = topView
选项2.将topView
作为子视图添加到表视图,然后调整表视图的contentInset。就像:
UIEdgeInsets tableViewInsets = self.tableView.contentInset;
tableViewInsets.top = topView.frame.size.height;
self.tableView.contentInset = tableViewInsets;
【讨论】:
以上是关于结合 UIView 和 UITableView的主要内容,如果未能解决你的问题,请参考以下文章
如何使自定义 UIView 与 UINavigationBar 结合使其看起来像一个
将 UIView.layer.clipsToBounds = true 与 CABasicAnimation 结合使用时,并非所有像素都被裁剪
使用 CADisplayLink“结合”与 CAMediaTimingFunction 为 UIView 设置动画。 (获得任意曲线)
如何将自动布局约束与 UIView 的 contentMode 属性结合起来