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

时间:2017-11-26 08:28:12

标签: ios uitableview swift3 ios11 iphone-x

好吧,我正在尝试使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.
}


}

以下是该问题的屏幕截图。 Yellow Header Should stretch to edges.

提前致谢。

1 个答案:

答案 0 :(得分:1)

我找到了另一种方法。

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

var app; 
function () {
app = angular.module('app', []);
app.value('ordersHub', $.connection.ordersHub)
$.connection.hub.start();
app.controller('sendMessage', function ($scope, ordersHub) {
    $scope.messages = [];
    console.log(ordersHub.client)
    ordersHub.client.addNewOrder = function hubMethodInvoked(data) {
        console.log('get response in client');
        $scope.messages.push(data);
    };

    $scope.sendMessage = function () {
        $scope.messages.push($scope.message)
        ordersHub.server.joinGroup("someGroup");
        ordersHub.server.newOrder($scope.message, 1);
    }
});
})();

以下是the link工作代码。

希望它对其他人也有帮助。