Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SwiftUI中获取列表交互键盘高度?_Swift_Iphone_Keyboard_Uikit_Swiftui - Fatal编程技术网

如何在SwiftUI中获取列表交互键盘高度?

如何在SwiftUI中获取列表交互键盘高度?,swift,iphone,keyboard,uikit,swiftui,Swift,Iphone,Keyboard,Uikit,Swiftui,在SwiftUI中,我们可以通过向下滑动,让键盘在列表中进行交互。我们只需要将此代码提供给视图的init() init(){ UITableView.appearance().keyboardDismissMode=.interactive } 这可以正常工作,但附加到键盘的视图不会随着键盘本身移动 我在UIKit中找到了应该解决这个问题的帖子。如何在SwiftUI中解决它 这是我处理键盘弹出的方式: 最终类键盘响应器:ObservableObject{ 私人var_中心:通知中心 @已发布的

SwiftUI
中,我们可以通过向下滑动,让键盘在
列表中进行交互。我们只需要将此代码提供给视图的init()

init(){
UITableView.appearance().keyboardDismissMode=.interactive
}
这可以正常工作,但附加到键盘的视图不会随着键盘本身移动

我在UIKit中找到了应该解决这个问题的帖子。如何在SwiftUI中解决它

这是我处理键盘弹出的方式:

最终类键盘响应器:ObservableObject{
私人var_中心:通知中心
@已发布的专用(集合)变量currentHeight:CGFloat=0
@已发布的专用(设置)var持续时间:Double=0.0
init(中心:NotificationCenter=.default){
_中心=中心
_center.addObserver(self,选择器:#选择器(keyBoardWillShow(通知:)),名称:UIResponder.keyboardWillShowNotification,对象:nil)
_center.addObserver(self,选择器:#选择器(keyBoardWillHide(通知:)),名称:UIResponder.keyboardWillHideNotification,对象:nil)
}
脱硝{
_中心移动观察者(自我)
}
@objc func键盘将显示(通知:通知){
如果让keyboardSize=(notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey]作为?NSValue)?.cgRectValue,
让duration=notification.userInfo?[UIResponder.keyboardAnimationDurationUserInfoKey]作为?双精度{
self.duration=持续时间
currentHeight=键盘大小.height
}
}
@objc func键盘将隐藏(通知:通知){
currentHeight=0
}
}
结构KeyboardHandler:ViewModifier{
让高度:CGFloat
持续时间:双倍
func正文(内容:内容)->某些视图{
内容
.padding(.bottom,height)
.animation(.spring(blendDuration:duration))
}
}