我有一个TableViewController,在其中我以编程方式创建了一个UIView,它是状态栏的宽度和高度,并且有一个彩色的背景。基本上,它作为状态栏的背景:

let statusBarBG = UIView(frame: CGRectMake(0, 0, widthOfScreen, 20))
statusBarBG.backgroundColor = UIColor...
self.view.addSubView(statusBarBG)

但是,当我上下拖动表格时,此状态栏的背景会随着整个表格视图移动,如下图所示(左边是它的正常外观,红色的较大部分是我的导航栏背景):
所以我的问题是:如何在这个tableViewController中创建一个视图,它更像是tableView的兄弟,而不是一个随tableView一起移动的子视图?谢谢。

最佳答案

如何在这个tableViewController中创建一个视图,它更像是tableView的同级视图,而不是与其一起移动的子视图?
不幸的是,这在tableviewcontroller中是不可能的,因为tableviewcontroller的视图是UITableView实例,而UITableView实例又是UIScrollView的子类。基本上,任何你作为scrollview的子级放置的东西都会随之滚动。
一个更好的方法是不再使用table view controller,而是使用带有嵌入式表视图的普通视图控制器。您甚至可以通过将视图控制器添加到继承权中来重用它。
另一种(更简单的)方法是处理uitableview的滚动委托方法,并根据偏移量调整头视图的Y位置。

关于ios - 将UIView添加到TableViewControllers View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29379931/

10-14 20:11