如何使用 ScnViewGestures.Forms 在 Xamarin.Forms 中使用 TouchDown 和 TouchUp 事件创建视图

Posted

技术标签:

【中文标题】如何使用 ScnViewGestures.Forms 在 Xamarin.Forms 中使用 TouchDown 和 TouchUp 事件创建视图【英文标题】:How to create a view with TouchDown and TouchUp events in Xamarin.Forms with ScnViewGestures.Forms 【发布时间】:2015-08-07 11:39:39 【问题描述】:

ScnViewGestures.Forms 是一个 Nuget 包,它允许使用自定义触摸处理程序在页面中设置任何子视图。然而,通过阅读它在 github 1 上的sparce 文档,要弄清楚如何使用它并不容易。那么如何在 Xamarin.Forms 中使用 TouchDown 和 TouchUp 事件处理程序创建自定义视图?

【问题讨论】:

【参考方案1】:

这是一个工作代码示例。不要忘记安装 nuget 包 ScnViewGestures.Forms 并像这样初始化它:

ios(在 AppDelegate.cs 中):

Xamarin.Forms.Forms.Init ();
ViewGesturesRenderer.Init();

安卓:

Xamarin.Forms.Forms.Init (this, bundle);
ViewGesturesRenderer.Init();

WinPhone:

Xamarin.Forms.Forms.Init ();
ViewGesturesRenderer.Init();

然后您可以创建像这个小按钮这样的自定义视图,它分别处理向下和向上事件,这是 Xamarin.Forms 标准按钮无法做到的。

using System;
using System.Collections.Generic;
using Xamarin.Forms;
using ScnViewGestures.Plugin.Forms;

namespace ViewGesturesExample 
    public partial class ButtonView : ContentView
    
        public ButtonView ()
        
            InitializeComponent ();
            Content = _gestures = new ViewGestures () 
                HorizontalOptions = new LayoutOptions(LayoutAlignment.Fill, true),
                VerticalOptions = new LayoutOptions(LayoutAlignment.Fill, true),
            ;
            _gestures.Content=_button=new Label () 
                HorizontalOptions = new LayoutOptions(LayoutAlignment.Fill, true),
                VerticalOptions = new LayoutOptions(LayoutAlignment.Fill, true),
                XAlign = TextAlignment.Center,
                YAlign = TextAlignment.Center,
            ;
            _gestures.TouchBegan += OnTouchDown;
            _gestures.TouchEnded += OnTouchUp;          
            // here you have more events like 
            //Tap;
            //SwipeLeft;
            //SwipeRight;
            //SwipeUp;
            //SwipeDown.
        

            Label _button;
            ViewGestures _gestures;

            private void OnTouchDown(object sender, EventArgs args) 

            

            private void OnTouchUp(object sender, EventArgs args) 

            
        


【讨论】:

对于所有寻找所用插件源代码的人:github.com/ScienceSoft-Inc/ViewGestures

以上是关于如何使用 ScnViewGestures.Forms 在 Xamarin.Forms 中使用 TouchDown 和 TouchUp 事件创建视图的主要内容,如果未能解决你的问题,请参考以下文章

如何使用本机反应创建登录以及如何验证会话

如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]

如何使用 AngularJS 的 ng-model 创建一个数组以及如何使用 jquery 提交?

如何使用laravel保存所有行数据每个行名或相等

如何使用 Math.Net 连接矩阵。如何使用 Math.Net 调用特定的行或列?

WSARecv 如何使用 lpOverlapped?如何手动发出事件信号?