Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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 使用背景图像滚动UITableView时,我的导航栏没有向上移动_Ios_Uitableview_Uiscrollview_Uinavigationcontroller_Uinavigationbar - Fatal编程技术网

Ios 使用背景图像滚动UITableView时,我的导航栏没有向上移动

Ios 使用背景图像滚动UITableView时,我的导航栏没有向上移动,ios,uitableview,uiscrollview,uinavigationcontroller,uinavigationbar,Ios,Uitableview,Uiscrollview,Uinavigationcontroller,Uinavigationbar,我在嵌入到UINavigationController中的视图上具有此视图层次结构: 当我滚动UITableView时,导航栏没有向上移动,标题也没有变小,它保持如下状态: navigationItem.title = "Title here" navigationItem.largeTitleDisplayMode = .always navigationController?.navigationBar.prefersLargeTitles = true navigationControl

我在嵌入到UINavigationController中的视图上具有此视图层次结构:

当我滚动UITableView时,导航栏没有向上移动,标题也没有变小,它保持如下状态:

navigationItem.title = "Title here"
navigationItem.largeTitleDisplayMode = .always

navigationController?.navigationBar.prefersLargeTitles = true
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
navigationController?.navigationBar.isTranslucent = true
navigationController?.navigationBar.tintColor = .white
navigationController?.navigationBar.barStyle = UIBarStyle.blackTranslucent
navigationController?.navigationBar.backgroundColor = .clear
如果我删除图像视图作为背景视图,一切都很好

我的导航配置如下:

navigationItem.title = "Title here"
navigationItem.largeTitleDisplayMode = .always

navigationController?.navigationBar.prefersLargeTitles = true
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
navigationController?.navigationBar.isTranslucent = true
navigationController?.navigationBar.tintColor = .white
navigationController?.navigationBar.barStyle = UIBarStyle.blackTranslucent
navigationController?.navigationBar.backgroundColor = .clear
此处提供了一个演示该问题的项目:

我已经尝试更改tableview的插图,但没有成功

tableView.contentInset = UIEdgeInsets(top: navigationController?.navigationBar.height, left: 0, bottom: 0, right: 0)

谢谢

正如您所发现的,要使大标题字体按您所希望的方式工作,UIScrollView或其任何子类必须是视图层次结构中的第一个元素

要解决此问题,可以尝试将背景图像直接设置为UITableView的背景

编辑:好的,soo根据你的评论,你想在包括导航栏在内的所有东西后面有一个背景。有一种方法可以实现这一点,那就是将UINavigationController和inside viewDidLoad子类化:


然后确保包含UITableView的UIViewController具有UIView的清晰颜色,并从该UIViewController中删除背景图像

,但我需要该图像覆盖整个屏幕,我需要在导航栏和表格视图后面看到该图像。如果我添加图像作为背景图像,我只会在表视图后面看到它。如果我把表格视图放在导航栏后面,表格视图的内容也会放在导航栏后面,只需要图像就可以了。请参见此处:@user1539434请参见编辑。它应该能解决你的问题