Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 屏幕上的Swift表格视图标题_Ios_Swift_Uitableview_Uinavigationcontroller - Fatal编程技术网

Ios 屏幕上的Swift表格视图标题

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

我在VC中设置了一个带有自定义标题的tableview。我也有一个导航栏,我已经使它透明。我希望tableview标题位于屏幕顶部,而不是导航栏下方。我尝试将-navigationBar.height放在HeadServicewFrame的CGRect y原点中,但似乎不起作用

我有:

我想要像这样的东西:

下面是一些代码:

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)},该行可以解决问题。谢谢