在UINavigationBar iOS11下固定子视图

时间:2018-07-10 11:51:47

标签: ios swift ios11

我想将子视图固定在UINavigationBar下面,其中UINavigationBar更喜欢大标题。我的目标是使此子视图始终对UINavigationBar的高度变化做出反应。

我想我已经解决了:

Demo

红色标签跟随导航栏的最高更改(大/小导航栏)。当我向下拖动UITablewView时出现问题。 UINavigationBar涵盖了UILabel。如何解决这个问题?拖动时,UILabel应该像UITableView一样向下移动。

当前实施:

import UIKit
import SnapKit

class ViewController: UIViewController, UITableViewDataSource {

    private let label = UILabel()
    private let tableView = UITableView()

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        title = "Ttile"
        view.backgroundColor = .white

        self.navigationItem.largeTitleDisplayMode = .always
        self.navigationController?.navigationBar.prefersLargeTitles = true

        tableView.dataSource = self
        view.addSubview(tableView)

        view.addSubview(label)
        label.text = "yvtuhijjiuhuygtyfguhij"
        label.backgroundColor = .red


        label.snp.makeConstraints {
            $0.top.equalTo(view.safeAreaLayoutGuide.snp.top)
            $0.leading.equalToSuperview()
            $0.trailing.equalToSuperview()
        }

        tableView.snp.makeConstraints {
            $0.top.equalTo(label.snp.bottom)
            $0.leading.equalToSuperview()
            $0.trailing.equalToSuperview()
            $0.bottom.equalToSuperview()
        }
    }


    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 100
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = UITableViewCell()
        cell.textLabel?.text = "fdsfsd"

        return cell
    }
}

0 个答案:

没有答案