Ios 屏幕上的Swift表格视图标题
我在VC中设置了一个带有自定义标题的tableview。我也有一个导航栏,我已经使它透明。我希望tableview标题位于屏幕顶部,而不是导航栏下方。我尝试将-navigationBar.height放在HeadServicewFrame的CGRect y原点中,但似乎不起作用 我有: 我想要像这样的东西: 下面是一些代码:Ios 屏幕上的Swift表格视图标题,ios,swift,uitableview,uinavigationcontroller,Ios,Swift,Uitableview,Uinavigationcontroller,我在VC中设置了一个带有自定义标题的tableview。我也有一个导航栏,我已经使它透明。我希望tableview标题位于屏幕顶部,而不是导航栏下方。我尝试将-navigationBar.height放在HeadServicewFrame的CGRect y原点中,但似乎不起作用 我有: 我想要像这样的东西: 下面是一些代码: func setupTableView() { let tableView = UITableView() tableView.frame = view.b
func setupTableView() {
let tableView = UITableView()
tableView.frame = view.bounds
tableView.backgroundColor = .blue
view.addSubview(tableView)
tableView.separatorStyle = .none
tableView.tableHeaderView = headerView
}
lazy var headerView: LFHeaderView = {
let headerView = LFHeaderView()
headerView.frame = CGRect(x: 0, y: 0, width: SCREENW, height: 242)
return headerView
}()
谢谢尝试插入UITableView
[self.tableView setContentInset:UIEdgeInsetsMake(44,0,0,0)];
或者用swift
self.tableView.contentInset = UIEdgeInsetsMake(44, 0, 0, 0)
更改headerView的框架
headerView.frame = CGRect(x: 0, y: min(0, self.tableView.contentOffset.y), width: SCREENW, height: 242)
如果仍然面临问题,则另一种选择是转到
Main.StoryBoard->选择VC->属性检查器->在顶部栏下进行检查
尝试使用UITableViewController并使用:
tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
这可能是一个escamotage:在导航控制器中隐藏导航栏。使按钮与后退按钮相等,并带有弹出动作。你会得到你想要的结果。是的,这也是我的想法,但作为一名新的swift开发人员,我不知道这样做是否会失去导航控制器提供的功能。我在一个应用程序中这样做。设计师完全移除了导航栏,但我仍然需要导航控制器的功能。你对安全区域或superview有最高限制?@AdrianBobrowski,谢谢你的评论,你是对的。我将使用它与iPhone X兼容。如果让navBarH=navigationController?.navigationBar.frame.height{tableView.contentInset=UIEdgeInsetsMake(-navBarH,0,0,0)},该行可以解决问题。谢谢