在重复标题的顶部添加了更改,但是有拉伸效果吗?

时间:2019-07-08 17:01:41

标签: ios swift uitableview header parallax

enter image description here有拉伸效果。但是额外的标头是重复的,只是没有数据。任何人都可以更正我额外编写的代码或错误地称为标头的代码吗?我有自定义标头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类的标头部分的代码。我认为在继承标头或加载addsubview时犯了一个错误。也许更有经验的人可以对我的代码进行调整。

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
    }

0 个答案:

没有答案