3d touch是ios9推出的適用於iphone6s(plus),包括剛出的iphone7(plus)以上的機型的功能。
開發主要有4個方面:
- 主介面快捷選單功能 (home screen quick action)
- 預覽圖和重擊功能( uikit peek and pop)
- web view預覽鏈結的頁面(web view peek and pop)
- 檢測3d touch的相對壓力大小(uitouch force properties)
shortcutsubtitle1string>
shortcuttitle1string>
$(product_bundle_identifier).firststring>
firstshorcutkey1key>
firstshortcutkeyvalue1string>
dict>
dict>
array>
-(void)createshortcutitems
localizedtitle:title
localizedsubtitle:nil
icon:icon
userinfo:nil];
}
nsarray
*itemsnames = @[@"拍照", @"聯絡人", @"美化",@"任務"];
nsuinteger index = [itemsnames indexofobject:shortcutitem.localizedtitle];
nslog(@"%@",itemsnames[index]);
}}有三個控制器:1當前控制器 2預覽圖控制器 3重擊時跳轉的控制器(也可以不實現,跳回到第乙個控制器)
在當前控制器實現**uiviewcontrollerpreviewingdelegate;
實現**中的兩個方法分別對應peek和pop;
首先監測3d touch功能是否可用 (可用的話就註冊**uiviewcontrollerpreviewingdelegate)
if ([[[uidevice currentdevice] systemversion] floatvalue] >= 9)
}
實現peek預覽功能
-(uiviewcontroller *)previewingcontext:(id
)previewingcontext viewcontrollerforlocation:(cgpoint)location
previewingcontext.sourcerect = cell.frame;//突出來的frame,見下圖
zsrpreviewcontroller *vc = [[zsrpreviewcontroller alloc] init];//預覽圖控制器
vc.preferredcontentsize = cgsizemake(kscreenwidth, 200);
vc.index = [indexpath row];
return vc;
}
實現pop重擊功能
在預覽圖控制器覆蓋以下方法有具體的選項功能。
- (nsarray
> *)previewactionitems ];
uipreviewaction *action2 = [uipreviewaction actionwithtitle:@"取消" style:uipreviewactionstyledefault handler:^(uipreviewaction * _nonnull action, uiviewcontroller * _nonnull previewviewcontroller) ];
非常簡單,只需要加上webview.allowslinkpreview = yes;
就可以實現該功能了。
附上自己寫的oc例子:
iOS9系列 3DTouch開發
3dtouch 是ios9系統系統下,在iphone6s iphone6s plus 手機上才能夠使用的功能。熟練使用後,發現還是很便捷的。但是模擬器是不支援這個手勢的。只能在真機上進行測試,但是有大神在github開源了乙個外掛程式,以便在模擬器上使用sbshortcutmenusimulator...
iOS新特性之實現3D Touch
第一次寫部落格,具體不太會操作,望大家多多見諒,有何問題隨時聯絡 在網上找了下資料,貌似很少的,只找到一篇簡單介紹的 首先我們需要在 info.plist 檔案中加上一項 keykey array dict keykey string string keykey string share strin...
3d touch 的使用 一
廢話不多說,直接上 在方法裡面判斷,該手機是否是9.0以上,因為3dtouch是9.0以後出的功能 cgfloat currentdeviceversionfloat uidevice currentdevice systemversion floatvalue 判斷版本號,3d touch是從io...