首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS13/iPadOS13模式视图控制器自动滑动以关闭捕获触摸的中断视图

iOS13/iPadOS13模式视图控制器自动滑动以关闭捕获触摸的中断视图
EN

Stack Overflow用户
提问于 2020-04-24 16:08:42
回答 3查看 232关注 0票数 2

我找到了这个帖子,但它不能反映我的情况:Disable gesture to pull down form/page sheet modal presentation

我有这样的问题:我的应用程序通过表单格式的模式表示打开了一个小的视图控制器。这里提供了一个导航控制器,它包含一个静态的presented控制器,在我唯一的单元格中,我有一个通过"touchesBegan“和"touchesMoved”捕获签名的视图。

当我试图绘制签名时,触摸被视图控制器捕获,它试图忽略自己。

显然,我已经激活了属性"modalInPresentation“

如何找到对此负责的gestureRecognizer?

代码语言:javascript
复制
self.view.gestureRecognizers He gives me these back, but nobody seems to intercept the gesture of dismiss:

<UIScrollViewDelayedTouchesBeganGestureRecognizer: 0x280ac8800; state = Possible; enabled = NO; delaysTouchesBegan = YES; view = <UITableView 0x10711a000>; target= <(action=delayed:, target=<UITableView 0x10711a000>)>>
<UIScrollViewPanGestureRecognizer: 0x105bfe170; state = Possible; enabled = NO; delaysTouchesEnded = NO; view = <UITableView 0x10711a000>; target= <(action=handlePan:, target=<UITableView 0x10711a000>)>>
<UIScrollViewKnobLongPressGestureRecognizer: 0x105b9b270; state = Possible; view = <UITableView 0x10711a000>; target= <(action=_handleKnobLongPressGesture:, target=<UITableView 0x10711a000>)>; numberOfTapsRequired = 0; minimumPressDuration = 0.1>
<UIScrollViewKnobLongPressGestureRecognizer: 0x105b9b440; state = Possible; view = <UITableView 0x10711a000>; target= <(action=_handleKnobLongPressGesture:, target=<UITableView 0x10711a000>)>; numberOfTapsRequired = 0>
<UIHoverGestureRecognizer: 0x112fb7f60; state = Possible; view = <UITableView 0x10711a000>; target= <(action=_handleKnobHoverGesture:, target=<UITableView 0x10711a000>)>>
<_UIDragAutoScrollGestureRecognizer: 0x28098ec10; state = Possible; cancelsTouchesInView = NO; delaysTouchesEnded = NO; view = <UITableView 0x10711a000>; target= <(action=_handleAutoScroll:, target=<UITableView 0x10711a000>)>>
<_UISwipeActionPanGestureRecognizer: 0x105be9d00; state = Possible; view = <UITableView 0x10711a000>; target= <(action=_swipeRecognizerDidRecognize:, target=<_UISwipeHandler 0x281896b00>)>>
<_UISwipeDismissalGestureRecognizer: 0x280ac8d00; state = Possible; enabled = NO; delaysTouchesBegan = YES; view = <UITableView 0x10711a000>; target= <(action=_dismissalRecognizerDidRecognize:, target=<_UISwipeHandler 0x281896b00>)>>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-04-27 06:18:37

Stack Overflow用户

发布于 2020-04-24 18:20:47

应该是这样的

代码语言:javascript
复制
<UIDropShadowView: 0x10521faf0; frame = (0 40; 375 627); gestureRecognizers = <NSArray: 0x2803a5f50>; layer = <CALayer: 0x280de8e00>>
代码语言:javascript
复制
(lldb) po [self.view _parentDescription]
<UIView: 0x10521dac0; frame = (0 0; 375 627); autoresize = W+H; gestureRecognizers = <NSArray: 0x2803a5bc0>; layer = <CALayer: 0x280de87c0>>
    <UIView: 0x105220880; frame = (0 0; 375 627); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x280de8d40>>
        <UIView: 0x105220380; frame = (0 0; 375 627); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x280de8d60>>
            <UIDropShadowView: 0x10521faf0; frame = (0 40; 375 627); gestureRecognizers = <NSArray: 0x2803a5f50>; layer = <CALayer: 0x280de8e00>>
                <UITransitionView: 0x10521f540; frame = (0 0; 375 667); autoresize = W+H; layer = <CALayer: 0x280de8d20>>
                    <UIWindow: 0x105106ac0; frame = (0 0; 375 667); autoresize = W+H; gestureRecognizers = <NSArray: 0x2803ad230>; layer = <UIWindowLayer: 0x280ded800>>
票数 0
EN

Stack Overflow用户

发布于 2020-04-24 17:29:52

如果您使用的是pushViewController,则需要提供此popviewController。就像这样。

代码语言:javascript
复制
let vc = storyboard?.instantiateViewController(withIdentifier: "popSignatureViewController") as? popSignatureViewController
        vc?.modalPresentationStyle = .overCurrentContext
        self.present(vc!, animated: true, completion: nil)
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61403892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档