我正在做一个函数,当按下按钮时,UIView的高度会增加或减小。
当UIView的高度降低时,值在情节提要中创建一个布局,当UIView的高度增加时,该值将是UITextView的高度。
上面的图片是在UIView被拉伸之前。按下照片底部的按钮来拉伸UIView
上面的图片是在UIView被拉伸之后。如果您按下上面图片底部的按钮,UIView将再次收缩。
我首先好奇的是使UIView的高度增加的代码。
@IBOutlet weak var bookInfoView: UIView!
@IBOutlet weak var bookInfoVieweBtn: UIButton!
@IBOutlet weak var bookInfoTextView: UITextView!
@IBAction func bookInfoViewBtnTapped(_ sender: Any) {
print("##bookInfoViewBtnTapped!")
let f = bookInfoView.frame
let textView = bookInfoTextView.frame
bookInfoView.frame = CGRect(x: f.origin.x, y: f.origin.y, width: f.width, height: textView.height)
}
如果使用上面的代码按下按钮,它就什么也做不了。我该怎么办?
发布于 2020-04-05 22:38:08
1.为要展开的视图的高度设置一些默认值。然后,如果您正在使用StoryBoard,使一个IBOutlet到您的ViewConroller,并删除弱引用(这是因为我们将停用高度锚,如果它是弱的,如果您禁用它,圆弧将解除它。如果您要编程实现它,只需将高度锚点存储在局部变量中。所以它应该喜欢这样的东西:
@IBOutlet var yourViewHeightAnchor: NSLayoutConstraint!
@IBAction func expandClicked(_ sender: Any) {
yourViewHeightAnchor.isActive.toggle()
}
如果您希望使用一些动画来展开/折叠,您的expandClicked
函数应该如下所示:
@IBAction func expandClicked(_ sender: Any) {
UIView.animate(withDuration: 0.6, animations: {
self.yourViewHeightAnchor.isActive.toggle()
self.view.layoutIfNeeded()
})
}
https://stackoverflow.com/questions/61053923
复制相似问题