答案 0 :(得分:0)
您可以按照以下步骤操作:
在处理UITextView点击事件的IBAction中,只需将其帧高更新为与控制器高度相等即可。 (如截图所示)。
//更新视图框架的几种方法之一
textView.frame = CGRect(x:0,y:0,width:self.view.frame.width,height:self.view.frame.height)
您可以在此处找到更新UITextView大小的其他方法:How do I change UIView Size?
答案 1 :(得分:0)
您也可以使用constraint
执行此操作。您只需更改Action
上UITapGesture
的{{1}}中特定UITextView
的{{1}}值即可。您可以更改Constraints
的{{1}} Top
的{{1}}和TextView
的{{1}}。试试这个!!
答案 2 :(得分:0)
因此,您尝试使用点按手势更新UIView的高度。您需要以下IBOutlets
:
NSLayoutConstraint
CGFloat
变量来更新它
可以从您的视图控制器到达以改变您的
NSLayoutConstraint
常量UITapGestureRecognizer
此外,您的UIImageView将需要落后于其他视图。您只需将其拖到Interface Builder中的View层次结构的顶部即可。顶视图位于层次结构的后面:
这里是:
为视图创建IBOutlet
s以及要设置动画的UIView的高度:
@IBOutlet weak var bioView: UIView!
@IBOutlet weak var bioViewHeightConstraint: NSLayoutConstraint!
这只是故事板的参考。如果您想要更改bioViewHeightConstraint
,则需要访问其常量。因此声明一个变量:
var bioViewHeight: CGFloat! {
/*
Here we're using a property observer to execute code whenever
this value is updated
*/
didSet {
print("stackViewHeight updated to \(bioViewHeight)")
UIView.animate(withDuration: 0.5, delay: 0.0, options: [.curveEaseIn], animations: {
self.bioViewHeightConstraint.constant = self.bioViewHeight
self.view.layoutIfNeeded()
}) { _ in
self.bioTextView.scrollRangeToVisible(NSRange(location: 0, length: 0))
print("animation complete")
}
}
}
您将看到我在didSet
中添加了一些动画代码。因此,每当您更改bioViewHeight
时,bioViewHeightConstraint.constant
都会更新。
接下来,我们使用以下代码配置UITapGestureRecognizer
:
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(toggleHeight(sender:)))
tapGestureRecognizer.numberOfTapsRequired = 1
bioView.addGestureRecognizer(tapGestureRecognizer)
点击手势代码位于viewDidLoad
。
接下来,我们必须为您的水龙头编写处理程序。这是代码:
func toggleHeight(sender: UITapGestureRecognizer) {
if bioViewHeightConstraint.constant == UIScreen.main.bounds.height / 2 {
// true
bioViewHeight = UIScreen.main.bounds.height - 30 // gives space for status bar
} else {
// false
bioViewHeight = UIScreen.main.bounds.height / 2
}
}
这是可以做你正在尝试做的事情的基本代码。这是指向repo的完整代码的链接。