在我的应用程序中,我有一个类似的视图,如Instagram卷轴,视频播放,底部有个人资料图片,视频描述,喜欢按钮和评论按钮。
当我点击评论按钮,我想显示评论表视图控制器覆盖到半屏,与评论和inputbar accessoryview在底部如下:半屏视图控制器
当我点击inputbar accessoryview,评论视图控制器显示覆盖全屏,应该显示键盘如下:全屏视图控制器
请告诉我如何实现这种行为。
你可以在storyboard或代码中创建一个新的ViewController,然后设置setself.view.backgroundColor = .clear
(或者,你可以通过使用自定义颜色来改变storyboard中视图的backgroundColor的不透明度)。
接下来,在故事板上放置一个UIView。为视图的高度约束创建一个@IBOutlet
。你可以通过使用
let viewHeight = self.view.frame.size.height
self.commentsView.setHeight(viewHeight/2)
确保在setHeight:
项目中包含此扩展extension UIView {
func setHeight(_ h:CGFloat, animateTime:TimeInterval?=nil) {
if let c = self.constraints.first(where: { $0.firstAttribute == .height &&
$0.relation == .equal }) {
c.constant = CGFloat(h)
if let animateTime = animateTime {
UIView.animate(withDuration: animateTime, animations:{
self.superview?.layoutIfNeeded()
})
}
else {
self.superview?.layoutIfNeeded()
}
}
}
}