• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • SwiftUI學習筆記Gesture續

    標簽: ios  swift  xcode

    Gesture–Drag、Rotate,Magnification
    Rotate
    定義Rotate變量和手勢

    @GestureState var angle = Angle(degrees: 0.0)
        var rotatePress : some Gesture{
            RotationGesture()
                .updating($angle){
                    angle, state, transaction in
                    state = angle
            }
        }
    

    modifier

    }
            .scaleEffect(self.isDetectingLongPress ? 1.1 : 1.0)
            .rotationEffect(angle)
            .gesture(tapPress)
            .gesture(rotatePress)
    

    在這里插入圖片描述

    Magnification

    @GestureState var magnifyBy = CGFloat(1.0)
        var magnificationPress : some Gesture{
            MagnificationGesture()
                .updating($magnifyBy){
                    size, state, transcation in
                    state = size
            }.simultaneously(with: rotatePress)
            .onEnded({
                _ in
                
            })
        }
    

    modifier

     }
            .scaleEffect(magnifyBy)
            .rotationEffect(angle)
            .gesture(tapPress)
            .gesture(magnificationPress)
    

    為了演示縮放,取消了長按改變尺寸,同步實現旋轉和縮放功能。
    在這里插入圖片描述

    拖動Drag

    @State var offset: CGSize = .zero
        var dragPress: some Gesture{
            DragGesture()
            .onChanged({
                self.offset = $0.translation
            })
            .onEnded({
                if $0.translation.width < -100{
                    self.offset = .init(width: -1000, height: 0)
                }else if $0.translation.width > 100{
                    self.offset = .init(width: 1000, height: 0)
                    
                }else{
                    self.offset = .zero
                }
            })
        }
    

    modifier

     }
            .scaleEffect(magnifyBy)
            .rotationEffect(angle)
            .offset(offset)
            .gesture(tapPress)
            .gesture(magnificationPress)
            .gesture(dragPress)
    

    嗯,這種操作,卡片沒有跟隨鼠標移動,然后在長按手勢后同步執行拖動手勢,就可以跟隨了。

    var longPress: some Gesture {
                LongPressGesture(minimumDuration: 3)
                    .updating($isDetectingLongPress) { currentstate, gestureState,
                            transaction in
                        gestureState = currentstate
                        transaction.animation = Animation.easeIn(duration: 0.5)
                    }
                    .onEnded { finished in
                        self.completedLongPress = finished
            }.simultaneously(with: dragPress)
            }
    
     }
            .scaleEffect(magnifyBy)
            .rotationEffect(angle)
            .offset(offset)
            .gesture(tapPress)
            .gesture(magnificationPress)
            //.gesture(dragPress)
            .animation(Animation.easeIn)
    

    在這里插入圖片描述
    基本的手勢使用完成!!!

    版權聲明:本文為jackwsd原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/jackwsd/article/details/107296156

    智能推薦

    MongoDB 學習筆記(陸續更新)

    文章目錄 安裝mongoDB 啟動MongoDB 不需要用戶認證打開 需要用戶驗證打開 安裝robo3T 在robo3T授權打開mongoDB 創建數據庫 插入數據 創建用戶 1. 創建管理員 2. 授權認證 3. 給使用的數據庫添加用戶 安裝mongoDB 教程: 安裝mongoDB教程 啟動MongoDB 不需要用戶認證打開 所有人都可以訪問到該數據庫的內容,可以打開命令行輸入打開: 需要用戶...

    SpringMVC學習筆記 --- 映射處理器(續)

         如何根據http請求選擇合適的controller是MVC中一項十分關鍵的功能,在Spring MVC中,HandlerMapping接口是這一活動的抽象。同時,Spring MVC也提供了一系列HandlerMapping的實現,根據一定的規則選擇controller。如果當前的HandlerMappign實現中沒有能夠滿足你所需要的規則是,可以...

    SpringMVC學習筆記(五)---視圖解析器(續)

    在Spring MVC中,當Controller將請求處理結果放入到ModelAndView中以后,DispatcherServlet會根據ModelAndView選擇合適的視圖進行渲染。那么在Spring MVC中是如何選擇合適的View呢?View對象是是如何創建的呢?答案就在ViewResolver中,ViewResolver接口定義了resolverViewName方法,根據viewNam...

    cs231n-學習筆記-01圖像分類(續)

    關于K近鄰詳解與代碼實現 本文根據 李航《統計學習方法》第三章和cs231n作業1 整理而來。 0 簡介 K近鄰法(KNN)是一種基本分類與回歸方法。 K近鄰法的三個基本要素: ①K值得選擇 ②距離度量 ③分類決策規則 K近鄰算法沒有顯示的學習過程 1 抽象表達 輸入: T={(x1,y1),(x2,y2),⋅⋅⋅,(xN,yN)}T={(x1,y1),(x2,y2)...

    續:HTML基礎語法學習筆記

    1.Css(層疊樣式表):擁有對網頁和模式樣式編輯的能力 CSS語法說明:每個CSS樣式由兩個部分組成,即選擇符和聲明,聲明又稱屬性和屬性值。屬性必須在花括號中,屬性與屬性值用冒號連接。每條聲明用分號結束。 選擇符{屬性:屬性值} 1.1 css屬性:屬性是指定選擇符具有的屬性,它是css的核心,css共有150多個屬性。 1.1.1文本屬性 字體的類型 說明: 當字體是中文字體時需加引號;&ld...

    猜你喜歡

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    精品国产乱码久久久久久蜜桃不卡