首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用.gesture(LongPressGesture)破坏滚动视图

使用.gesture(LongPressGesture)破坏滚动视图
EN

Stack Overflow用户
提问于 2022-02-27 02:35:06
回答 1查看 169关注 0票数 1

我在Xcode 13.2上使用Swift 5,SwiftUI 3.0。

我有以下代码:

代码语言:javascript
复制
  ZStack { ... custom button }
 .gesture(LongPressGesture(minimumDuration: 0.5, maximumDistance: 30)
        .onEnded { _ in
                withAnimation(.easeInOut(duration: 1.0)) {
                    // code when ended...
                }
        }
        .onChanged { _ in
            withAnimation(.easeInOut(duration: 0.2)) {
                // code when touched...
            }
            
        })

让我们称其为CustomButton

然后我得到了这个ScrollView和LazyVGrid:

代码语言:javascript
复制
ScrollView {
    VStack(spacing: 15) {
           let columns = Array(repeating: GridItem(.flexible(), spacing: 10), count: 1)

           LazyVGrid(columns: columns,spacing: 15) {
               CustomButton()
               CustomButton()
               // and then some more...
           }
    } 
}

现在,当我从onChange中删除CustomButton处理程序时,滚动操作就可以了。所以我猜,因为onChange()一点击按钮就会触发,所以它优先于ScrollView。但是,我需要在onChange()被触发后,或者在用户触摸按钮之后发生的动画。

我已经尝试过在.onTapGesture {}修饰符之前有一个空的.gesture()。我尝试过将.gesture更改为.simulatenousGesture,并尝试了在SO或AppleDev论坛上找到的所有内容。

我想知道在ScrollView中是否可以有一个按钮,即:

.gesture().onChange

  • Is

  • 接受0.0 minimumDuration触摸,或者在ScrollView

中仍然可以滚动

任何帮助都将不胜感激,谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-27 09:49:25

这种变化是有效的(不要问我为什么.):

代码语言:javascript
复制
struct CustomButton: View {
    var body: some View {
        RoundedRectangle(cornerRadius: 15)
            .frame(height: 50)
        
            .onTapGesture {
                print("tapped")
            }
        
            .onLongPressGesture(minimumDuration: 0.5, maximumDistance: 30) {
                print("longpress ended")
            } onPressingChanged: { pressing in
                print("longpress changed")
            }
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71281713

复制
相关文章

相似问题

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