3DTouch
UITouch類里API的變化
iOS9中添加的屬性
altitudeAngle
當(dāng)筆平行于平面時,該值為0
當(dāng)筆垂直于平面時,該值為Pi / 2
estimatedProperties
當(dāng)前觸摸對象估計的觸摸特性
返回值是UITouchPropertyies
updatedProperties
當(dāng)前觸摸對象已經(jīng)更新的觸摸特性
返回值是UITouchPropertyies
estimationUpdateIndex
當(dāng)每個觸摸對象的觸摸特性發(fā)生變化時胞皱,該值將會單獨(dú)增加
返回值是NSNumber
iOS9中添加的方法
- PreciseLocationInView:
- 當(dāng)前觸摸對象的坐標(biāo)
- PrecisePreviousLocationInView:
- 當(dāng)前觸摸對象的前置坐標(biāo)
- azimuthAngleInview:
沿著x軸正向的方位角
當(dāng)與x軸正向方向相同時,該值為0
當(dāng)view參數(shù)為nil時,默認(rèn)為keyWindow
- azimuthUnitVectorInView:
當(dāng)前觸摸對象的方向上的單位向量
當(dāng)view參數(shù)為nil時九妈,默認(rèn)為keyWindow
UIForceTouchCapability
UIForceTouchCapabilityUnknown
- 不能確定是否支持壓力感應(yīng)
UIForceTouchCapabilityUnavailable
- 不能支持壓力感應(yīng)
UIForceTouchCapabilityAvailable
- 可以支持壓力感應(yīng)
UITouchType
UITouchTypeDirect
- 垂直的觸摸類型
UITouchTypeIndirect
- 非初值的觸摸類型
UITouchTypeStylus
- 水平的觸摸類型
UITouchProperties
UITouchPropertyForce
ShortcutItem
靜態(tài)方式
- 打開Info.plist文件
- 在對應(yīng)UIApplicationShortcutItems關(guān)鍵字下添加item
動態(tài)方式
修改當(dāng)前應(yīng)用程序的某個shortcutItem
//獲取第0個shortcutItem
id oldItem = [existingShortcutItems objectAtIndex: 0];
//將舊的shortcutItem改變?yōu)榭尚薷念愋蛃hortcutItem
id mutableItem = [oldItem mutableCopy];
//修改shortcutItem的顯示標(biāo)題
[mutableItem setLocalizedTitle: @“Click Lewis”];
獲取當(dāng)前應(yīng)用程序的shortcutItems
//獲取當(dāng)前應(yīng)用程序?qū)ο?
UIApplication *app = [UIApplication sharedApplication];
//獲取一個應(yīng)用程序?qū)ο蟮膕hortcutItem列表
id existingShortcutItems = [app shortcutItems];
重置當(dāng)前應(yīng)用程序的shortcutItems
//根據(jù)舊的shortcutItems生成可變shortcutItems數(shù)組
id updatedShortcutItems = [existingShortcutItems mutableCopy];
//修改可變shortcutItems數(shù)組中對應(yīng)index下的元素為新的shortcutItem
[updatedShortcutItems replaceObjectAtIndex: 0 withObject: mutableItem];
//修改應(yīng)用程序?qū)ο蟮膕hortcutItems為新的數(shù)組
[app setShortcutItems: updatedShortcutItems];
創(chuàng)建一個新的UIApplicationShortcutItem
-
初始化函數(shù)
- initWithType:localizedTitle:localizedSubtitle:icon:userInfo:
- initWithType:localizedTitle:
-
屬性
localizedTitle:NSString
- localizedSubtitle:NSString
- type:NSString
- icon:UIApplicationShortcutIcon
- userInfo:NSDictionary
只有只讀特性反砌,想要進(jìn)行修改時,需要通過mutableCopy方法轉(zhuǎn)變?yōu)?br> NSMutableApplicationShortcutItem
創(chuàng)建一個新的Item圖標(biāo)
-
初始化函數(shù)
+ iconWithType:
+ iconWithTemplateImageName:
+ iconWithContact:
當(dāng)程序啟動時
- 判斷l(xiāng)aunchOptions字典內(nèi)的UIApplicationLaunchOptionsShortcutItemKey是否為空
- 當(dāng)不為空時,application:didFinishLaunchWithOptions方法返回false萌朱,否則返回true
- 在application:performActionForShortcutItem:completionHandler方法內(nèi)處理點(diǎn)擊事件
Peek and Pop
注冊預(yù)覽功能的代理對象和源視圖
代理對象需要接受UIViewControllerPreviewingDelegate協(xié)議
@interface RootVC<UIViewControllerPreviewingDelegate>
{}
@end
代理對象實(shí)現(xiàn)協(xié)議內(nèi)的Peek和Pop方法
@implementation RootVC
- (UIViewController *)previewingContext:(id<UIViewControllerPreviewing>)context viewControllerForLocation:(CGPoint) point
{
UIViewController *childVC = [[UIViewController alloc] init];
childVC.preferredContentSize = CGSizeMake(0.0f,300f);
CGRect rect = CGRectMake(10, point.y - 10, self.view.frame.size.width - 20,20);
context.sourceRect = rect;
return childVC;
}
- (void)previewContext:(id<UIViewControllerPreviewing>)context commitViewController:(UIViewController*)vc
{
[self showViewController:vc sender:self];
}
@end
注冊方法聲明在UIViewController類內(nèi)
[self registerForPreviewingWithDelegate:self sourceView:self.view];