Быстрое изменение высоты сиби программно - PullRequest
0 голосов
/ 22 января 2019

Я реализовал 2 Xib-файла для View Controller (1 View, 1 CollectionView). Я хочу показать / скрыть вид при прокрутке. Я могу скрыть вид (установить высоту: 0), но когда я хочу вернуться (установить высоту: 50), это не работает.

Заранее спасибо.

func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {

    if scrollView.panGestureRecognizer.translation(in: scrollView).y < 0{

        self.searchFieldView.heightAnchor.constraint(equalToConstant: 0).isActive = true
        self.searchFieldView.clipsToBounds = true
        //self.view.setNeedsLayout()
        self.view.layoutIfNeeded()
    }
    else{

        self.searchFieldView.heightAnchor.constraint(equalToConstant: 50).isActive = true
        //self.view.setNeedsLayout()
        self.view.layoutIfNeeded()
    }

}

1 Ответ

0 голосов
/ 22 января 2019

Взять ссылку на высоту searchFieldView из xib и изменить ее постоянное значение на основе условия.

@IBOutlet weak var vwHeightConstraint: NSLayoutConstraint!

func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {

    if scrollView.panGestureRecognizer.translation(in: scrollView).y < 0{

        vwHeightConstraint.constant = 0

        self.searchFieldView.clipsToBounds = true
        //self.view.setNeedsLayout()
        self.view.layoutIfNeeded()
    }else{
         vwHeightConstraint.constant = 50

        //self.view.setNeedsLayout()
        self.view.layoutIfNeeded()
    }

}

Надеюсь, что это сработает. Только попробуйте этот

...