随着Iphone6s的问世。3DTouch这项功能搬上了Iphone的平台,之前看了下ZEALER上对3DTouch的一些点评,说现在只在手机上有,pad上面没有是因为pad的屏幕太大了,当手指按下的时候会有很大一块区域会有反应,具体内容大家可以去ZEALER上看看,觉得还不错哦,然后我就研究了下用代码实现3DTouch
话说简书能传图片不
那么接下来就讲一下用代码实现3DTouch
因为接触事件不长,我就把比较常见的先讲一下,以后有了新发现再更新
首先是桌面上用力按图标后会弹出一个类似于tableview的框,先实现这个
//这个是大家很常见AppDelegate里面的方法,在里面给UIApplication.sharedApplication的shortcutItems一个你要显示的提示数组就可以了,当然,这并不是必须要在这里添加的,shortcutItems属性是UIApplication.sharedApplication这个单例的,因为测试就写在这了,也可以根据需要动态添加,比如登陆之前显示注册和登录,注册后显示你需要显示的内容
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
//这里面的type不是类型,是这个(按钮)的ID,要知道点击的是哪一个按钮就是靠这个来找的
//localizedTitle:这个是标题,就是上面显示最显眼的那个
//localizedSubtitle:自标题,用来描述标题的作用的,在标题的下面呈淡灰色,字体较小(其实你想写什么都可以)
//icon:右边的那个图标我系统的有这些
//userInfo:就和通知里面的一样,可以放各种东西
//UIApplicationShortcutIconTypeCompose,//编辑的图标
//UIApplicationShortcutIconTypePlay,//播放图标
//UIApplicationShortcutIconTypePause,//暂停图标
//UIApplicationShortcutIconTypeAdd,//添加图标
//UIApplicationShortcutIconTypeLocation,//定位图标
//UIApplicationShortcutIconTypeSearch,//搜索图标
//UIApplicationShortcutIconTypeShare//分享图标
然后9.1以后增加了这些case这个用的时候不需要我就不多做解释了哈
swift里面UIApplicationShortcutIconTypeShare = UIApplicationShortcutIconType.Share
下面这些第一个为例UIApplicationShortcutIconType. Prohibit
case Prohibit//禁止
case Contact//接触(圆圈里面一个脑袋)
case Home//房子
case MarkLocation//标记位置(一个大头针)
case Favorite//最爱(五角星)
case Love//爱心
case Cloud//云(云朵)
case Invitation//邀请( [<- )左旋转90度
case Confirmation//证实(圆圈里一个勾勾)
case Mail//邮箱
case Message//消息(黑色的短信图标)
case Date//日期(日历)
case Time//时间(时钟)
case CapturePhoto//照相(相机)
case CaptureVideo//录像(录像机)
case Task//任务(空心圈)
case TaskCompleted//任务完成(空心圈里面一个实心圈)
case Alarm//闹钟
case Bookmark//书签(Safari的书签一样,iBook的一样)
case Shuffle//重组(随机播放的图标)
case Audio//声音(喇叭)
case Update//更新(苹果电脑Safari右上角的共享菜单箭头向下)
let item1 = UIApplicationShortcutItem(type: "test1", localizedTitle: "测试1", localizedSubtitle: "来测试一下1", icon: UIApplicationShortcutIcon(type: UIApplicationShortcutIconType.Love), userInfo: nil)
let item2 = UIApplicationShortcutItem(type: "test2", localizedTitle: "测试2", localizedSubtitle: "来测试一下2", icon: UIApplicationShortcutIcon(type: UIApplicationShortcutIconType.Mail), userInfo: nil)
let item3 = UIApplicationShortcutItem(type: "test3", localizedTitle: "测试3", localizedSubtitle: "来测试一下3", icon: UIApplicationShortcutIcon(type: UIApplicationShortcutIconType.Play), userInfo: nil)
let arr : [UIApplicationShortcutItem] = [item1,item2,item3]
UIApplication.sharedApplication().shortcutItems = arr
return true
}
然后点击后触发的方法是
func application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) -> Void) {
//shortcutItem就是你点击的那个shortcutItem,这里你就可以判定点击到的是哪一个(按钮)并作出相应的操作
//这个方法只能在AppDelegate里面写
print(shortcutItem.type)
}
这样点击桌面的弹出久差不多了,这类还可以直接在info.plist里面写
<key>UIApplicationShortcutItems</key>
//添加UIApplicationShortcutItems数组
<array>
<dict>
<key>UIApplicationShortcutItemIconType</key>
//下面参数为UIApplicationShortcutItemIconType(图标)
<string>UIApplicationShortcutIconTypeSearch</string>
<key>UIApplicationShortcutItemSubtitle</key>
//下面参数为UIApplicationShortcutItemSubtitle(子标题)
<string>Will search for an item</string>
<key>UIApplicationShortcutItemTitle</key>
//下面参数为UIApplicationShortcutItemTitle(标题)
<string>Search</string>
<key>UIApplicationShortcutItemType</key>
//下面参数为ID
<string>myd</string>
</dict>
<dict>
<key>UIApplicationShortcutItemIconType</key>
<string>UIApplicationShortcutIconTypeShare</string>
<key>UIApplicationShortcutItemSubtitle</key>
<string>Will share an item</string>
<key>UIApplicationShortcutItemTitle</key>
<string>Share</string>
<key>UIApplicationShortcutItemType</key>
<string>myd1</string>
</dict>
</array>
也可以点击info.plist里面的加号然后自己添加