436
社区成员
发帖
与我相关
我的任务
分享
public override void TouchesMoved (NSSet touches, UIEvent evt)
{
base.TouchesMoved (touches, evt);
UITouch touch = touches.AnyObject as UITouch;
if (touch != null)
{
// Get the pressure
var force = touch.Force; //获取压力
var maxForce = touch.MaximumPossibleForce; //获取压力最大值
// Do something with the touch and the pressure
...
}
}
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
// 检测是否支持3D Touch
if (TraitCollection.ForceTouchCapability == UIForceTouchCapability.Available) {
// 设备支持
...
}
}
using System;
using System.Collections.Generic;
using UIKit;
using Foundation;
using CoreGraphics;
namespace DTouch
{
public class PreviewingDelegate : UIViewControllerPreviewingDelegate
{
#region Computed Properties
public MasterViewController MasterController { get; set; }
#endregion
#region Constructors
public PreviewingDelegate (MasterViewController masterController)
{
// Initialize
this.MasterController = masterController;
}
public PreviewingDelegate (NSObjectFlag t) : base(t)
{
}
public PreviewingDelegate (IntPtr handle) : base (handle)
{
}
#endregion
#region Override Methods
/// 继续按压触发Pop事件
public override void CommitViewController (IUIViewControllerPreviewing previewingContext, UIViewController viewControllerToCommit)
{
// 直接使用之前创建好的详情页面
MasterController.ShowViewController(viewControllerToCommit,this);
}
/// 创建预览页面,当用户触发Peek事件
public override UIViewController GetViewControllerForPreview (IUIViewControllerPreviewing previewingContext, CGPoint location)
{
// 判断表格中的条目
var indexPath = MasterController.TableView.IndexPathForRowAtPoint (location);
var cell = MasterController.TableView.CellAt (indexPath);
var item = MasterController.dataSource.Objects [indexPath.Row];
// 创建ViewController,并设置初始位置
var detailViewController = MasterController.Storyboard.InstantiateViewController ("DetailViewController") as DetailViewController;
detailViewController.PreferredContentSize = new CGSize (0, 0);
// 填入数据
detailViewController.SetDetailItem (item);
detailViewController.NavigationItem.LeftBarButtonItem = MasterController.SplitViewController.DisplayModeButtonItem;
detailViewController.NavigationItem.LeftItemsSupplementBackButton = true;
// 设置预览页面的位置,模糊其他页面
previewingContext.SourceRect = cell.Frame;
return detailViewController;
}
#endregion
}
}
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
// 判断设备是否支持3D Touch
if (TraitCollection.ForceTouchCapability == UIForceTouchCapability.Available) {
// 注册Pop和Peek
RegisterForPreviewingWithDelegate(new PreviewingDelegate(this), View);
}
...
}