【问题标题】:UISearchController Swift 4: Spacing ProblemsUISearchController Swift 4:间距问题
【发布时间】:2018-12-08 02:23:41
【问题描述】:

我正在添加一个 UISearchController,但我一直遇到间距问题。特别是,当我在搜索栏中进行搜索时,它会向上移动并在表格视图和搜索栏之间留下一个黑色空间。

然后,当我键入时,黑色空间消失了,但搜索栏和表格之间有一个很大的空白。

我尝试添加以下行,但间距问题变得更糟:

searchController.hidesNavigationBarDuringPresentation = false

任何有用的提示将不胜感激。

这是我当前的代码:

class SearchViewController: UITableViewController {
var searchController: UISearchController!

override func viewDidLoad() {
super.viewDidLoad()

view.backgroundColor = UIColor.clear
view.isOpaque = false
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)

//Set up Table View
self.navigationController?.navigationBar.shadowImage = UIImage()
let searchResultsController = UITableViewController(style: .plain)
searchResultsController.tableView.delegate = self
searchResultsController.tableView.dataSource = self
searchResultsController.tableView.rowHeight = 65
searchResultsController.tableView.register(SearchCell.self, forCellReuseIdentifier: "SearchCell")

// Setup  Search Controller
searchController = UISearchController(searchResultsController: searchResultsController)
searchController.searchBar.tintColor = UIColor.white
searchController.searchBar.barTintColor = UIColor(red: 34/255, green: 167/255, blue: 240/255, alpha: 1.0)
searchController.searchBar.layer.borderColor = UIColor(red: 34/255, green: 167/255, blue: 240/255, alpha: 1.0).cgColor
searchController.searchBar.layer.borderWidth = 1.00

tableView.tableHeaderView?.addSubview(searchController.searchBar)
let searchBar = searchController.searchBar
searchBar.sizeToFit()

searchBar.placeholder = "Search"
searchController.searchBar.delegate = self
searchController.searchResultsUpdater = self
definesPresentationContext = true
searchController.dimsBackgroundDuringPresentation = false
tableView.tableHeaderView = searchController.searchBar
}

【问题讨论】:

  • 所有设备都出现这种情况吗?
  • 是的,所有设备上都会发生这种情况。
  • @J.Hooper 你有什么解决办法吗?其实我也面临同样的问题

标签: ios uitableview swift4 uisearchbar uisearchcontroller


【解决方案1】:

尝试添加

self.automaticallyAdjustsScrollViewInsets = false

self.extendedLayoutIncludesOpaqueBars = true

在 viewDidload 中。

或取消选中“调整滚动视图插图”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多