如何在滚动时在静态单元格tableview中创建弹性图像

时间:2016-09-13 11:19:24

标签: ios swift uitableview tableview

如何在静态单元格tableview中创建弹性自调整图像,如本教程所示? http://blog.matthewcheok.com/design-teardown-stretchy-headers/

但对于静态细胞而不是动态细胞。

编辑:

class ProfileViewController2: UITableViewController {

    var profilePic = "WilsonLer"
    private let kTableHeaderHeight: CGFloat = 189
    var headerView: UIView!

    @IBOutlet weak var topHeader: UITableViewCell!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        let user = FIRAuth.auth()?.currentUser
        self.navigationItem.title = user!.email

        headerView = topHeader
        tableView.contentInset = UIEdgeInsets(top: kTableHeaderHeight, left: 0, bottom: 0, right: 0)
        tableView.contentOffset = CGPoint(x: 0, y: -kTableHeaderHeight)
        updateHeaderView()



        // to set and display profile image
        let profilePicImage = topHeader.viewWithTag(1) as! UIImageView
        let profilePicBG = topHeader.viewWithTag(2) as! UIImageView
        profilePicImage.image = UIImage(named: profilePic)
        profilePicBG.image = UIImage(named: profilePic)
        profilePicImage.layer.cornerRadius = profilePicImage.frame.height/2
        profilePicImage.clipsToBounds = true
        profilePicImage.layer.borderWidth = 1
        profilePicImage.layer.borderColor = UIColor.whiteColor().CGColor
    }

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

    func updateHeaderView() {

        var headerRect = CGRect(x: 0, y: -kTableHeaderHeight, width: tableView.bounds.width, height: kTableHeaderHeight)
        if tableView.contentOffset.y < -kTableHeaderHeight {

            headerRect.origin.y = tableView.contentOffset.y
            headerRect.size.height = -tableView.contentOffset.y

        }
        topHeader.frame = headerRect

    }

    override func scrollViewDidScroll(scrollView: UIScrollView) {
        updateHeaderView()
    }



}

我在链接中尝试了这种方法,但仍无济于事。试图为单元格创建一个子类,但它只适用于动态单元格。

这是我用非滚动标题得到的全部内容:

enter image description here

谢谢

1 个答案:

答案 0 :(得分:1)

它的工作方式相同。图像是标题。它与动态或静态的细胞无关。如果您想测试它,只需添加1个空白静态单元格,UIImage标题和&amp;添加标头的代码。它应该工作正常。

注意:对于静态单元格,您必须为每个单元格创建一个自定义类。

注意2:下次你提出这样的问题至少要付出一些努力来尝试自己。不要指望问一个问题&amp;人们去做你的工作。