2017-10-05 40 views
0

我只是说与顶级UISearchBar一个UITableView进入我的看法,但只在iOS上11,表视图比我的搜索栏多宽,这是我的代码:在UITableView的古怪宽度iOS上的11

self.autocompleteTableView = UITableView(frame: CGRect(x: self.storeSearchBar.frame.origin.x, y: self.storeSearchBar.frame.origin.y + self.storeSearchBar.frame.size.height, width: self.storeSearchBar.bounds.width, height: 200.0)) 
    self.autocompleteTableView!.alpha = 0.8 
    self.autocompleteTableView!.delegate = self 
    self.autocompleteTableView!.dataSource = self 
    self.autocompleteTableView!.separatorStyle = .none 
    if #available(iOS 11.0, *) { 
     self.autocompleteTableView!.insetsContentViewsToSafeArea = true 
    } 

    self.storeSearchBar.alpha = 0.8 
    self.storeSearchBar.delegate = self 
    self.view.addSubview(self.autocompleteTableView!) 
    self.autocompleteTableView!.isHidden = true 

    let searchBar = self.storeSearchBar! 
    searchBar.barTintColor = UIColor.white 
    searchBar.sizeToFit() 

我究竟做错了什么?

+0

在该方法中,你设定框架? –

+0

我设置viewDidload框架与此配置@MaulikBhuptani –

+1

尝试在viewDidLayoutSubviews中设置唯一的UITableView&UISearchBar帧 –

回答

0

如此,由于@MaulikBhuptani,得到的答案是:

override func viewDidLayoutSubviews() { 
    self.autocompleteTableView = UITableView(frame: CGRect(x: 
    self.storeSearchBar.frame.origin.x, y: self.storeSearchBar.frame.origin.y + self.storeSearchBar.frame.size.height, width: self.storeSearchBar.bounds.width, height: 200.0)) 
    self.autocompleteTableView!.alpha = 0.8 
    self.autocompleteTableView!.delegate = self 
    self.autocompleteTableView!.dataSource = self 
    self.autocompleteTableView!.separatorStyle = .none 
    if #available(iOS 11.0, *) { 
     self.autocompleteTableView!.insetsContentViewsToSafeArea = true 
    } 

    self.storeSearchBar.alpha = 0.8 
    self.storeSearchBar.delegate = self 
    self.view.addSubview(self.autocompleteTableView!) 
    self.autocompleteTableView!.isHidden = true 

    let searchBar = self.storeSearchBar! 
    searchBar.barTintColor = UIColor.white 
    searchBar.sizeToFit() 
}