具有横向 iPhone X 支持的表视图标题

Posted

技术标签:

【中文标题】具有横向 iPhone X 支持的表视图标题【英文标题】:Table View Header with Landscape iPhone X support 【发布时间】:2017-11-26 08:28:12 【问题描述】:

好吧,我正在尝试使 UITableView 的标题与 iPhone X Landscape 兼容,我希望 Header 的背景颜色应该扩展到边缘。 我看过 WWDC 视频,他们说要在 backgroundView 上应用颜色,但在我的情况下它总是为零。

这是我的代码,也是 link 的演示。

extension ViewController:UITableViewDataSource
func numberOfSections(in tableView: UITableView) -> Int 
    return 5

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    return 5


func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    let cell = tableView.dequeueReusableCell(withIdentifier: String.init(describing: HVTableViewCell.self)) as! HVTableViewCell
    return cell


extension ViewController:UITableViewDelegate

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat 
    return 60.0

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat 
    return 44.0


func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? 
    if let headerView = tableView.dequeueReusableHeaderFooterView(withIdentifier: String.init(describing: HVTableViewHeaderFooterView.self)) as? HVTableViewHeaderFooterView
        if let backgroundView = headerView.backgroundView
            backgroundView.backgroundColor = UIColor.red
        else
            print("Failed")
        
        return headerView
    else
        return nil
    



class ViewController: UIViewController 

@IBOutlet weak var tblReference: UITableView!
override func viewDidLoad() 
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    self.tblReference.register(UINib.init(nibName: String.init(describing: HVTableViewCell.self), bundle: nil), forCellReuseIdentifier: String.init(describing: HVTableViewCell.self))
    self.tblReference.register(UINib.init(nibName: String.init(describing: HVTableViewHeaderFooterView.self), bundle: nil), forHeaderFooterViewReuseIdentifier: String.init(describing: HVTableViewHeaderFooterView.self))

    self.tblReference.delegate = self
    self.tblReference.dataSource = self

    self.tblReference.reloadData()


override func didReceiveMemoryWarning() 
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.




这是问题的屏幕截图。

提前致谢。

【问题讨论】:

【参考方案1】:

我找到了另一种方法。

我们可以设置HeaderView的Layer的背景颜色。

// HeaderView Class
self.layer.backgroundColor = UIColor.red.cgColor

这是the link 的工作代码。

希望对其他人也有帮助。

【讨论】:

以上是关于具有横向 iPhone X 支持的表视图标题的主要内容,如果未能解决你的问题,请参考以下文章

iPhone X 横向模式下的视图看起来不正确

禁用 iPhone 中键盘的方向

在一个模式视图控制器上强制 iOS 方向为横向

如何在 iphone 的表视图上加载 Soap 响应

将 NSMutableArray 加载到 iPhone 的表视图中时无法识别的选择器

横向操作表中的 UIPickerView