Ios 键盘视图与使用UIViewControllerTransitioningDelegate的模式显示视图混淆
我使用Ios 键盘视图与使用UIViewControllerTransitioningDelegate的模式显示视图混淆,ios,objective-c,uitableview,ios7,swift,Ios,Objective C,Uitableview,Ios7,Swift,我使用UIViewControllerTransitioningDelegate实例作为TransitioningDelegate和modalPresentationStyle=Custom来呈现另一个视图。 我使用的是TableViewController使用的是内部带有UITextfields的静态表视图单元格。现在,当在边框靠近键盘框架的文本字段上点击时,键盘下方的部分tableView会显示出来。我还删除了一个添加到半透明背景中的uitappesturerecognizer,以确保它不是
UIViewControllerTransitioningDelegate
实例作为TransitioningDelegate和modalPresentationStyle=Custom
来呈现另一个视图。
我使用的是TableViewController
使用的是内部带有UITextfields
的静态表视图单元格。现在,当在边框靠近键盘框架的文本字段上点击时,键盘下方的部分tableView会显示出来。我还删除了一个添加到半透明背景中的uitappesturerecognizer
,以确保它不是问题的一部分,但问题仍然存在。有什么想法吗?下面是animateTransition()
方法
func animateTransition(transitionContext: UIViewControllerContextTransitioning) {
dimmingView.backgroundColor = UIColor(white: 0.0, alpha: 0.5)
let containerView = transitionContext.containerView()
if let presentedViewController = transitionContext.viewControllerForKey(UITransitionContextToViewControllerKey) {
let presentedView = presentedViewController.view
let fromView = transitionContext.viewForKey(UITransitionContextFromViewControllerKey)
let centre = presentedView.center
if isPresenting {
presentedView.center = containerView.center
presentedView.frame = presentedView.bounds.rectByInsetting(dx: 30, dy: 150)
transitionContext.containerView().addSubview(presentedView)
dimmingView.frame = containerView.bounds
dimmingView.alpha = 0.0
containerView.insertSubview(dimmingView, atIndex: 0)
presentedViewController.transitionCoordinator()?.animateAlongsideTransition({
context in
self.dimmingView.alpha = 1.0
}, completion: nil)
}
else {
presentedViewController.transitionCoordinator()?.animateAlongsideTransition({
context in
self.dimmingView.alpha = 0.0
}, completion: {
context in
self.dimmingView.removeFromSuperview()
})
}
UIView.animateWithDuration(self.transitionDuration(transitionContext),
delay: 0, usingSpringWithDamping: 0.6, initialSpringVelocity: 10.0, options: nil,
animations: {
presentedView.center = centre
}, completion: {
_ in
transitionContext.completeTransition(true)
})
}
}