ios - 以编程方式快速更改 Xib 高度

标签 ios swift xcode xib

我为 View Controller 实现了 2 个 Xib 文件(1 个 View ,1 个 CollectionView)。我想在滚动时显示/隐藏 View 。我可以隐藏 View (set height:0) ,但是当我想返回 (set height: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()
    }

}

最佳答案

从 xib 中引用 searchFieldView 的高度,并根据条件更改其常量值。

@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()
    }

}

希望它能奏效。试试这个吧

关于ios - 以编程方式快速更改 Xib 高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54303885/

相关文章:

ios - Swift:如何使用 SwiftUI 4 根据侧栏选择状态更改 DetailView?

iphone - iOS 7 上的 NDA 何时到期?

ios - 使用 SwiftUI 和 Combine 自动构建和更新列表

ios - 在 tapGesture Action 选择器中包含协议(protocol)功能 - iOS Swift

ios - 你如何在 iOS8 的 Swift 的 UITextField 中限制只有 1 个小数点?

ios - 在适用于 iOS 的 Phonegap 应用程序中使用 Admob 的正确方法

ios - POST请求ios的安全性

ios - 开始/停止按钮无法正常工作 iOS

ios - 无法在 Xcode 10.2 中使用 Cocoapods 分解父类(super class)

iphone - 试图弄清楚这是否是内存泄漏 : Xcode