Существует изменение добавить поверх дублирующего заголовка, но есть эффект растяжения? - PullRequest
0 голосов
/ 08 июля 2019

введите описание изображения здесь Существует эффект растяжения. Но дополнительный заголовок дублируется, только без данных. Может ли кто-нибудь исправить мой код, который я написал дополнительно или неправильно назвал заголовок?. У меня есть собственный заголовок XIB. ссылка учебник https://mobikul.com/table-view-stretch-header-parallax-animation-in-swift/ Мой код:

var headerView: CustomSoccerHeaderView? = {
        return Bundle.main.loadNibNamed("CustomSoccerHeaderView", owner: nil, options: nil)!.first as! CustomSoccerHeaderView
    }()


 override func viewDidLoad() {
        super.viewDidLoad()

        let backButton = UIBarButtonItem()
        backButton.title = ""

       self.navigationController?.navigationBar.topItem?.backBarButtonItem = backButton

       // self.navigationItem.rightBarButtonItem = barButton
      //  self.navigationItem.rightBarButtonItem?.tintColor = UIColor.universalColorYellow
        let yourBackImage = UIImage(named: "backItem")
        self.navigationController?.navigationBar.backIndicatorImage = yourBackImage
        self.navigationController?.navigationBar.backIndicatorTransitionMaskImage = yourBackImage
        self.navigationController?.navigationItem.leftItemsSupplementBackButton = true
        self.navigationController?.navigationBar.tintColor = UIColor.universalColorYellow


        //title = detailSoccer.detailTitleS

        let nib: UINib = UINib(nibName: "CustomSoccerHeaderView", bundle: nil)
        tableView.register(nib, forHeaderFooterViewReuseIdentifier: "CustomSoccerHeaderView")


        tableView.tableFooterView = UIView(frame: .zero)

        tableView.estimatedRowHeight = 280
        headerView?.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 350)
        tableView.tableHeaderView = headerView
        tableView.tableHeaderView = nil
        tableView.contentInset  = UIEdgeInsets(top: 350, left: 0, bottom: 0, right: 0)
       tableView.addSubview(headerView!)

        tableView.separatorStyle = .none
        tableView.delegate = self
        tableView.dataSource = self
        tableView.register(UINib(nibName:"FootTableViewCell",bundle:nil), forCellReuseIdentifier: "cellSoc")
        self.view.addSubview(tableView)


        tableView.rowHeight = UITableView.automaticDimension



        tableView.reloadData()
        loadMatchSoccer()

        tableView.rowHeight = UITableView.automaticDimension

    }

Это растянет эффект:

 func scrollViewDidEndScrollingAnimation(_ scrollView: UIScrollView) {
        self.tableView.reloadData()
    }


    func scrollViewDidScroll(_ scrollView: UIScrollView) {

        if headerView != nil {
            let yPos: CGFloat = -scrollView.contentOffset.y

            if yPos > 0 {
                var imgRect: CGRect? = headerView?.frame
                imgRect?.origin.y = scrollView.contentOffset.y
                imgRect?.size.height = 350 + yPos  - 350
                headerView?.frame = imgRect!
                self.tableView.sectionHeaderHeight = (imgRect?.size.height)!

            }
        }
    }

Это код раздела заголовка моего класса xib файла. Я думаю, что я допустил ошибку при наследовании заголовка или загрузке addubview. Может быть, кто-то более опытный может настроить мой код. Я был бы признателен.

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {

        let header = tableView.dequeueReusableHeaderFooterView(withIdentifier: "CustomSoccerHeaderView") as! CustomSoccerHeaderView

       header.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 350)



        header.clickBravisso = detailSoccer

        header.nameHeader.text = detailSoccer.matchS
        header.countBravo.text = ""


        // header.bravoBtn.addTarget(CustomSoccerHeaderView(), action: #selector(CustomSoccerHeaderView.likeBtn(_:)), for: UIControlEvents.touchUpInside)


        detailSoccer.imagePrS.getDataInBackground { (data, error) in
            header.imageHeader.image = error == nil ? UIImage(data: data!) : nil
        }


        return header
    }
...