3djava动物乐园代码用IOS系统玩能成么

关于iOS的3D Touch 的简单使用,以及个人心得 - 简书
关于iOS的3D Touch 的简单使用,以及个人心得
前段时间因为对3D Touch感兴趣,研究了一下,发现网上的教程很多,很杂乱,所以在此整理一下,弄一个完整的,自己容易看懂的笔记。以便以后用到的时候再花时间去找。
恩,3D Touch 是需要6s以上的设备支持的,不过呢,技术没有难题,有牛人在github上为我们提供了一个插件,可以让我们在模拟器上进行3D Touch的效果测试:
那个,具体用法我这里就不写了。大家捣鼓捣鼓就出来了。因为我也没用过?;
ps: 由于本人比较懒,所以可能有些图就网上盗去了,
一、在icon处直接响应的功能模块
我们先来看看效果
ps:这个最多可以设置4个标签,每个标签后面可以跟一个图标
响应icon的有两种方式
1、在info.plist文件里面配置
这种也叫静态标签
我们来看看我是怎样写的,话不多说,先直接上图
先添加了一个UIApplicationShortcutItems的数组,这个数组中添加的元素就是对应的静态标签,在每个标签中我们需要添加一些设置的键值:
必填项(下面两个键值是必须设置的):
·UIApplicationShortcutItemType
这个键值设置一个快捷通道类型的字符串,用于点击后响应不同的事件
·UIApplicationShortcutItemTitle
这个键值设置标签的标题
选填项(下面这些键值不是必须设置的) :
·UIApplicationShortcutItemSubtitle
设置标签的副标题
·UIApplicationShortcutItemIconFile
设置标签的Icon文件(也就是图片)
·UIApplicationShortcutItemUserInfo
设置信息字典(用于传值)
2、 在代码里面添加
这种叫动态标签
type 该item 唯一标识符
localizedTitle :标题
localizedSubtitle:副标题
icon:icon图标 可以使用系统类型 也可以使用自定义的图片
userInfo:用户信息字典 自定义参数,完成具体功能需求
UIApplicationShortcutIcon *icon1 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"item1@3x.png"];
UIApplicationShortcutIcon *cameraIcon = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeCompose];
UIApplicationShortcutItem *cameraItem = [[UIApplicationShortcutItem alloc] initWithType:@"item1" localizedTitle:@"拍照" localizedSubtitle:@"" icon:cameraIcon userInfo:nil];
UIApplicationShortcutIcon *shareIcon = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeShare];
UIApplicationShortcutItem *shareItem = [[UIApplicationShortcutItem alloc] initWithType:@"item2" localizedTitle:@"分享" localizedSubtitle:@"" icon:shareIcon userInfo:nil];
/** 将items 添加到app图标 */
application.shortcutItems = @[cameraItem,shareItem];
ok,icon的入口我们弄完了。接下来就是是重点
二、响应标签的行为
其实这玩意儿和推送的原理差不多,都是根据标签的type来进行相关的逻辑操作。接下来看我的:
首先在AppDelegate里面添加如下方法
- (void)application:(UIApplication *)application
performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem
completionHandler:(void(^)(BOOL succeeded))completionHandler
在上面这个方法里面写一个UINavigationController
UINavigationController *nav = (UINavigationController *)self.window.rootViewC
判断先前我们设置的唯一标识,根据标识符推送到指定的Controller
if([shortcutItem.type isEqualToString:@"one"]){
oneViewController *vc = [[oneViewController alloc] init];
[nav pushViewController:vc animated:YES];
}else if ([shortcutItem.type isEqualToString:@"two"]){
twoViewController *vc = [[twoViewController alloc] init];
[nav pushViewController:vc animated:YES];
ok,点击推送的也就搞定了
三、点击tableView的cell界面预览
1、在tableView的代理方法里面加上如下代码
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
cell.textLabel.text = self.dataSource[indexPath.row];
cell.textLabel.numberOfLines = 0;
// 这里判断是否支持3D Touch功能
if (self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable) {
NSLog(@"3D Touch
//如果支持,给cell注册3DTouch的peek(预览)和pop功能
[self registerForPreviewingWithDelegate:self sourceView:cell];
NSLog(@"3D Touch 无效");
实现代理 UIViewControllerPreviewingDelegate
2、实现UIViewControllerPreviewingDelegate的代理方法
效果图如下:
// 预览效果
- (UIViewController *)previewingContext:(id&UIViewControllerPreviewing&)previewingContext viewControllerForLocation:(CGPoint)location
// 记录是哪一个cell被按,[previewingContext sourceView]就是按压的那个视图
NSIndexPath *index = [self.tableView indexPathForCell:(UITableViewCell *)[previewingContext sourceView]];
// 设定预览界面
showViewController *showVC = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"showViewController"];
showVC.titleLabel.text = self.dataSource[index.row];
showVC.preferredContentSize = CGSizeMake(0, 500);
//调整不被虚化的范围,按压的那个cell不被虚化(轻轻按压时周边会被虚化,再少用力展示预览,再加力跳页至设定界面)
CGRect rect = CGRectMake(0, 0, self.view.frame.size.width,40);
previewingContext.sourceRect =
return showVC;
// 用力按进入的controller
- (void)previewingContext:(id&UIViewControllerPreviewing&)previewingContext commitViewController:(UIViewController *)viewControllerToCommit
[self showViewController:viewControllerToCommit sender:self];
3、在预览的controller里面设置action
效果图如下:
直接上代码
- (NSArray&id&UIPreviewActionItem&& *)previewActionItems
UIPreviewAction *action1 = [UIPreviewAction actionWithTitle:@"第一个" style:UIPreviewActionStyleDefault handler:^(UIPreviewAction * _Nonnull action, UIViewController * _Nonnull previewViewController) {
// 点击事件写到这里
UIPreviewAction *action2 = [UIPreviewAction actionWithTitle:@"第2个" style:UIPreviewActionStyleDefault handler:^(UIPreviewAction * _Nonnull action, UIViewController * _Nonnull previewViewController) {
UIPreviewAction *action3 = [UIPreviewAction actionWithTitle:@"第3个" style:UIPreviewActionStyleDefault handler:^(UIPreviewAction * _Nonnull action, UIViewController * _Nonnull previewViewController) {
UIPreviewAction *action4 = [UIPreviewAction actionWithTitle:@"第4个" style:UIPreviewActionStyleDefault handler:^(UIPreviewAction * _Nonnull action, UIViewController * _Nonnull previewViewController) {
NSArray *action = @[action1,action2,action3,action4];
欢迎转载,但是请注明出处啊,谢谢啊亲!
·好了,大概就是这么多了,关于获取到压力值的那个东西我正在测试,空闲的时候我会贴上来。
ps 这是个人见解,如果有不对的地方,欢迎留言指出,大家相互探讨。谢谢!!当前位置:
3D Touch你真的会玩么?详细使用教程看这里!
编辑:笨笨
来源:网络
说起锋友diguotong ,他之前已经在威锋论坛上与我们分享过iPhone7介绍视频,而这次,他又为我们带来了新的东西。  拥有iPhone7或iPhone6s的机友们,或多或少都有使用过3D Touch功能,但是我们对3D Touch功能的认识有多少呢?也许很多朋友都看过国外媒体的详细评测和体验,但是由我们锋友亲自为我们做3D Touch完全视频讲解,这或许还是第一次。  不管你是新手还是老用户,锋友diguotong都希望通过视频,与我们一共探索他所发掘到的全部3D Touch功能,而视频中后部分还有许多3D Touch使用小技巧。  视频内容一共分为了四个部分(视频在原帖),首先,第一部分为我们讲解了主屏幕 App 的扩展。这点使用过3D Touch的朋友应该都体验过,比如天气,音乐,相机等,我们不需要打开软件就可以查看一些信息,而一些第三方App同样也支持3D Touch,如果你习惯了3D Touch,你在使用iPhone时肯定会觉得更加便利。  第二部分为我们讲解了通知栏更多的操作,比如我们可以快速下压一个信息,然后快速进行回复。当通知很多的时候,我们也可以按下清除按键,一次清除所有的通知。  第三部分,锋友继续为我们讲解了控制中心的复杂操作。比如说手电筒,我们可以通过按下手电筒图标,选择不同的光线强度等等。  第四部分,锋友详细为我们讲述了3D Touch一些小技巧,当然,锋友也提到,他个人的力量是有限的,如果还有什么视频中未提到的新鲜的3D Touch使用技巧,欢迎大家积极留言。  总的来说,3D Touch并不是很多人口中说的那样,是一个鸡肋功能,它许多的快捷操作,真的可以为我们的日常生活带来便利。如果你想通过锋友带来的详细视频讲解学习如何使用3D Touch,那么不妨前往原帖,与众多的锋友一同交流,相信你会在交流的过程中,有所收获。& & &
你可能还对一下内容感兴趣
【上一篇】
【下一篇】
推荐阅读:
看完这篇文章有何感觉?
苹果应用推荐
PP助手准备为您下载应用
未越狱版:鳄鱼小顽皮爱洗澡
如果在10秒后下载任务还没有开始,请下载并安装:
下载步骤如下:iOS9 3D Touch 使用教程 - 简书
iOS9 3D Touch 使用教程
本教程为纯代码,亦可以使用info.plist文件实现3D Touch功能
通过self.traitCollection.forceTouchCapability方法可以判断当前设备是否支持3d touch
p.p1 {margin: 0.0px 0.0px 0.0px 0.0 font: 14.0px M color: #00afca}p.p2 {margin: 0.0px 0.0px 0.0px 0.0 font: 14.0px M color: #ffffff}span.s1 {font-variant-ligatures: no-common- color: #c2349b}span.s2 {font-variant-ligatures: no-common- color: #ffffff}span.s3 {font-variant-ligatures: no-common-ligatures}span.s4 {font-variant-ligatures: no-common- color: #e44448}span.s5 {font: 14.0px 'PingFang SC'; font-variant-ligatures: no-common- color: #e44448}span.s6 {font-variant-ligatures: no-common- color: #00afca}
if (self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable)
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"您的手机支持3dtouch" message:nil delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"很遗憾您的手机不支持3dtouch" message:nil delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
p.p1 {margin: 0.0px 0.0px 0.0px 0.0 font: 14.0px M color: #ffffff}p.p2 {margin: 0.0px 0.0px 0.0px 0.0 font: 14.0px M color: #4cbf57}p.p3 {margin: 0.0px 0.0px 0.0px 0.0 font: 14.0px M color: # min-height: 19.0px}p.p4 {margin: 0.0px 0.0px 0.0px 0.0 font: 14.0px M color: #00afca}p.p5 {margin: 0.0px 0.0px 0.0px 0.0 font: 14.0px 'PingFang SC'; color: #4cbf57}p.p6 {margin: 0.0px 0.0px 0.0px 0.0 font: 14.0px M color: #c2349b}p.p7 {margin: 0.0px 0.0px 0.0px 0.0 font: 14.0px M color: #d28f5a}span.s1 {font-variant-ligatures: no-common-ligatures}span.s2 {font-variant-ligatures: no-common- color: #c2349b}span.s3 {font-variant-ligatures: no-common- color: #00afca}span.s4 {font-variant-ligatures: no-common- color: #ffffff}span.s5 {font: 14.0px 'PingFang SC'; font-variant-ligatures: no-common-ligatures}span.s6 {font-variant-ligatures: no-common- color: #e44448}span.s7 {font: 14.0px M font-variant-ligatures: no-common-ligatures}span.s8 {font: 14.0px 'PingFang SC'; font-variant-ligatures: no-common- color: #e44448}span.s9 {font-variant-ligatures: no-common- color: #8b84cf}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
/** 定义 shortcutItem
UIApplicationShortcutIcon *icon1 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"item1@3x.png"];
/** type 该item 唯一标识符
localizedTitle :标题
localizedSubtitle:副标题
icon:icon图标 可以使用系统类型 也可以使用自定义的图片
userInfo:用户信息字典 自定义参数,完成具体功能需求
UIApplicationShortcutItem *item1 = [[UIApplicationShortcutItem alloc] initWithType:@"item1" localizedTitle:@"科目一" localizedSubtitle:@"参加科目一练习" icon:icon1 userInfo:nil];
UIApplicationShortcutIcon *icon2 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"item2@3x.png"];
UIApplicationShortcutIcon *icon2 = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeAdd];
UIApplicationShortcutItem *item2 = [[UIApplicationShortcutItem alloc] initWithType:@"item2" localizedTitle:@"科目二" localizedSubtitle:@"参加科目二练习" icon:icon2 userInfo:nil];
UIApplicationShortcutIcon *icon3 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"item3@3x.png"];
UIApplicationShortcutItem *item3= [[UIApplicationShortcutItem alloc] initWithType:@"item3" localizedTitle:@"科目三" localizedSubtitle:@"参加科目三练习" icon:icon3 userInfo:nil];
UIApplicationShortcutIcon *icon4 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"item4@3x.png"];
UIApplicationShortcutItem *item4 = [[UIApplicationShortcutItem alloc] initWithType:@"item4" localizedTitle:@"科目四" localizedSubtitle:@"参加科目四练习" icon:icon4 userInfo:nil];
/** 将items 添加到app图标 */
application.shortcutItems = @[item4,item3,item2,item1];
return YES;
#pragma mark -
3D touch 代理方法
- (void)application:(UIApplication *)application performActionForShortcutItem:(nonnull UIApplicationShortcutItem *)shortcutItem completionHandler:(nonnull void (^)(BOOL))completionHandler
/** 逻辑判断 */
if ([shortcutItem.type isEqualToString:@"item1"])
/** 具体操作 */
系统icon图标枚举
p.p1 {margin: 0.0px 0.0px 0.0px 0.0 font: 14.0px M color: #ffffff}p.p2 {margin: 0.0px 0.0px 0.0px 0.0 font: 14.0px M color: #d28f5a}span.s1 {font-variant-ligatures: no-common- color: #c2349b}span.s2 {font-variant-ligatures: no-common-ligatures}span.s3 {font-variant-ligatures: no-common- color: #d28f5a}span.s4 {font-variant-ligatures: no-common- color: #8b84cf}span.s5 {font-variant-ligatures: no-common- color: #ffffff}
typedef NS_ENUM(NSInteger, UIApplicationShortcutIconType) {
UIApplicationShortcutIconTypeCompose,
UIApplicationShortcutIconTypePlay,
UIApplicationShortcutIconTypePause,
UIApplicationShortcutIconTypeAdd,
UIApplicationShortcutIconTypeLocation,
UIApplicationShortcutIconTypeSearch,
UIApplicationShortcutIconTypeShare,
UIApplicationShortcutIconTypeProhibit
NS_ENUM_AVAILABLE_IOS(9_1),
UIApplicationShortcutIconTypeContact
NS_ENUM_AVAILABLE_IOS(9_1),
UIApplicationShortcutIconTypeHome
NS_ENUM_AVAILABLE_IOS(9_1),
UIApplicationShortcutIconTypeMarkLocation
NS_ENUM_AVAILABLE_IOS(9_1),
UIApplicationShortcutIconTypeFavorite
NS_ENUM_AVAILABLE_IOS(9_1),
UIApplicationShortcutIconTypeLove
NS_ENUM_AVAILABLE_IOS(9_1),
UIApplicationShortcutIconTypeCloud
NS_ENUM_AVAILABLE_IOS(9_1),
UIApplicationShortcutIconTypeInvitation
NS_ENUM_AVAILABLE_IOS(9_1),
UIApplicationShortcutIconTypeConfirmation
NS_ENUM_AVAILABLE_IOS(9_1),
UIApplicationShortcutIconTypeMail
NS_ENUM_AVAILABLE_IOS(9_1),
UIApplicationShortcutIconTypeMessage
NS_ENUM_AVAILABLE_IOS(9_1),
UIApplicationShortcutIconTypeDate
NS_ENUM_AVAILABLE_IOS(9_1),
UIApplicationShortcutIconTypeTime
NS_ENUM_AVAILABLE_IOS(9_1),
UIApplicationShortcutIconTypeCapturePhoto
NS_ENUM_AVAILABLE_IOS(9_1),
UIApplicationShortcutIconTypeCaptureVideo
NS_ENUM_AVAILABLE_IOS(9_1),
UIApplicationShortcutIconTypeTask
NS_ENUM_AVAILABLE_IOS(9_1),
UIApplicationShortcutIconTypeTaskCompleted
NS_ENUM_AVAILABLE_IOS(9_1),
UIApplicationShortcutIconTypeAlarm
NS_ENUM_AVAILABLE_IOS(9_1),
UIApplicationShortcutIconTypeBookmark
NS_ENUM_AVAILABLE_IOS(9_1),
UIApplicationShortcutIconTypeShuffle
NS_ENUM_AVAILABLE_IOS(9_1),
UIApplicationShortcutIconTypeAudio
NS_ENUM_AVAILABLE_IOS(9_1),
UIApplicationShortcutIconTypeUpdate
NS_ENUM_AVAILABLE_IOS(9_1)
} NS_ENUM_AVAILABLE_IOS(9_0) __TVOS_PROHIBITED;
通过info.plist文件添加方法
Paste_Image.png
以下代码内容摘自官方API
p.p1 {margin: 0.0px 0.0px 0.0px 0.0 font: 12.0px C color: #666666; -webkit-text-stroke: #666666}p.p2 {margin: 0.0px 0.0px 0.0px 0.0 font: 12.0px C color: #666666; -webkit-text-stroke: #666666; min-height: 14.0px}span.s1 {font-kerning: none}table.t1 {border-collapse: collapse}td.td1 {width: 1239.0 padding: 6.0px 6.0px 6.0px 6.0px}
&key&UIApplicationShortcutItems&/key&
&key&UIApplicationShortcutItemIconFile&/key&
&string&open-favorites&/string&
&key&UIApplicationShortcutItemTitle&/key&
&string&Favorites&/string&
&key&UIApplicationShortcutItemType&/key&
&string&com.mycompany.myapp.openfavorites&/string&
&key&UIApplicationShortcutItemUserInfo&/key&
&key&key1&/key&
&string&value1&/string&
&key&UIApplicationShortcutItemIconType&/key&
&string&UIApplicationShortcutIconTypeCompose&/string&
&key&UIApplicationShortcutItemTitle&/key&
&string&New Message&/string&
&key&UIApplicationShortcutItemType&/key&
&string&com.mycompany.myapp.newmessage&/string&
&key&UIApplicationShortcutItemUserInfo&/key&
&key&key2&/key&
&string&value2&/string&
以下内容为info.plist文件各个字段的解释
Paste_Image.png
至此,3D touch的基本使用已经完成,后期将继续更新预览功能等。。。

我要回帖

更多关于 东芝动物乐园 的文章

 

随机推荐