www.ny0044.com
联系方式
联系电话:
联系传真:
电子邮箱:
联系地址:
当前位置: > www.ny0044.com > www.ny0044.com

Apple Watch 开辟 Tips

作者: admin 来源: 未知 发布时间:2017-10-05
Apple Watch 开辟 Tips

本文为作者投稿,原文地址:

http://www.jianshu.com/p/cbe8fa87c306

1、Apple Watch 界面及功能简介

据报道,纽约国际娱乐城官网,Apple Watch 在 2016 年一共卖出 1200 万只,在海内,纽约国际娱乐城官网,这是一个存量数百万的市场,苹果对 Apple Watch 也十分器重,每年的 WWDC 上城市花时间重点介绍 watchOS 的更新。当初许多应用在不足力的情况下,会开发一个简化版的 Watch App,在这种情况下,有需要去懂得 Apple Watch 的开发指南。本文就记载了作者在进修和开发 Watch App 中的一些 Tips.

2、手表主应用界面开发 2.1、表盘辨别率

都是 2x 屏

38mm 款: 272px * 340px (136pt * 170pt)

42mm 款: 312px * 390px (156pt * 195pt)

2.2、工程目次结构

新建工程,选项以及工程构造如下图阐明:

2.3、UI 规划先容

手表 UI 界面开发只采取 StoryBoard 方法,一切界面都必需事后在 StoryBoard 规划好,并设置好属性,顺序运转起来之后不能再静态增加界面,只能转变文字内容、图片内容等控件的属性。

UI 规划不使用 frame 坐标系统,也不使用 AutoLayout 系统,默许采用从左到右,从上到下的线性规划方式;如果规划内容超越 1 屏,在 SB 中会自动扩大表盘的高度,运转时手指向上滑会滚动显示出底下内容,相似 ScrollView 的后果。

如果运转时调用 setHidden 方式隐蔽了某个控件,则后续控件会主动补上,填充暗藏控件地点的地位。

Tip1:Group 可以设置其内控件为程度或垂直规划,将控件加入 Group,再将界面宰割成分歧的 Group,可以便利规划,且 Group 支持设置背景图。

Tip2:Global Tint 设置 app 的全局主色能够抉择 StoryBoard, 选中此中恣意一个 Interface Controller 在 File inspector 中对 Global Tint 属性停止修正。

这个色彩会应用到上面的元素:

status bar 中的 Title

short-look 通知中的应用称号

Tip3: 38mm 跟 42mm 巨细表盘适配,控件属性面板中点击 + 号,即可分辨设置。

Tip4: 图片放在 2 个 Target 中的差别

放在 WatchKit App 中的图片可以直接在 SB 的属性面板中索引到并使用,同时也可以用直接使用控件的setImageNamed方法在代码中停止设置[self.image setImageNamed:@"img1"];

放在 Watchkit Extension 中的图片只能经过setImage的办法在代码中停止设置[self.image setImage:[UIImage imageNamed:@"img2"]];

2.4、界面跳转 Push Present

与 UIKit 的用法和表示情势基原形同

[self pushControllerWithName:@"Test1Controller" context:@{@"isModal":@(NO)}];
[self presentControllerWithName:@"Test2Controller" context:@{@"isModal":@(YES)}];
[self presentControllerWithNames:@[@"Test1Controller", @"Test2Controller"] contexts:@[@{@"isModal":@(YES)}, @{@"isModal":@(YES)}]];

而后被弹出的 InterfaceController 在awakeWithContext方法中获得参数

- (void)awakeWithContext:(id)context 
{
    [super awakeWithContext:context];

    if (![context[@"isModal"] boolValue]) 
    {
        [self setTitle:@"我是 Test1"];
    }
}

启动默许成为可水平转动的多页应用,如下代码所示:

[WKInterfaceController reloadRootControllersWithNames:@[@"InterfaceController", @"Test1Controller", @"Test2Controller"] contexts:nil];

2.5、Force Touch 弹出菜单

调用用 WKInterfaceController 的如下系列方法停止增添,每个 item 可自力设置呼应方法。

- (void)addMenuItemWithImage:(UIImage *)image title:(NSString *)title action:(SEL)action;
- (void)addMenuItemWithImageNamed:(NSString *)imageName title:(NSString *)title action:(SEL)action;
- (void)addMenuItemWithItemIcon:(WKMenuItemIcon)itemIcon title:(NSString *)title action:(SEL)action;

如果此菜单按钮使用自定义的图片,倡议图片年夜小 38mm 手表 70x70,42mm 手表 80x80,单元:px

模仿器中调试,CMD+Shift+2鼠标左键酿成 Force Touch 功能可呼出此菜单,CMD+Shift+1鼠标左键恢复一般单击功效

3、表盘小组件界面开发

Complications 是 watchOS 2 新参加的特征,它是表盘上的小界面元素,用于自界说表盘,可以支撑直接从表盘唤起本人的 App。

苹果官方供给的表盘有良多种,然而表盘小组件归只演绎为以下多少品种型,很多表盘应用雷同类型的小组件。

typedef NS_ENUM(NSInteger, CLKComplicationFamily) {
    CLKComplicationFamilyModularSmall = 0,
    CLKComplicationFamilyModularLarge = 1,
    CLKComplicationFamilyUtilitarianSmall = 2,
    CLKComplicationFamilyUtilitarianSmallFlat = 6,
    CLKComplicationFamilyUtilitarianLarge = 3,
    CLKComplicationFamilyCircularSmall = 4,
    CLKComplicationFamilyExtraLarge = 7,
};

对开发职员来说,就是完成体系提供的 ComplicationController.m 中的几个署理方法,依据不同的小组件类型,前往对应的显示模板即可。其他详细可参考这篇文章:

http://www.jianshu.com/p/56aa823dd903

这里对代办方法简要说明如下:

4、通知界面开发

只要手机 App 支持 AppleWatch,那么对应的通知就会被同步得手表上。

对于开发者来说,只要完成系统提供的 NotificationController.m 中的通知回调方法即可。其他具体可参考 这篇文章, 这里对回调方法简要说明如下:

- (void)didReceiveNotification:(UNNotification *)notification withCompletion:(void(^)(WKUserNotificationInterfaceType interface)) completionHandler
{
    // 掏出自定义的告诉的内容并展现到界面的各个组件上
    UNNotificationContent *content = notification.request.content;
    NSDictionary *customDic = [content.userInfo objectForKey:@"customKey"];
    [self.lbl1 setText:customDic[@"key1"]];
    [self.lbl2 setText:customDic[@"key2"]];

    ,纽约国际娱乐城官网;completionHandler(WKUserNotificationInterfaceTypeCustom);
}
5、腕表手机间通讯

以后 AppleWatch S2 支持 WiFi 网络,不支持蜂窝挪动网络(听说下一代 S3 支持),手表真个应用可以直接挪用NSURLSession接口从收集获取数据。

在无 WiFi 的情形下,手表可以经过蓝牙与手机通信,向手机端恳求数据。

手表端简略的数据存储可以经过NSUserDefaults停止存储。(手表端可以使用 sqlite 数据库停止存储么?留待大师去验证:)

其余详细可参考这篇文章:

http://shinancao.github.io/2016/06/19/iOS-Watch-3/

这里敌手表手机蓝牙通信扼要解释如下:

6、AppStore 上架踩坑

1、手表端运用的的 AppIcon 不要带通明布景,玄色背景即可,不然使用 Application Loader 上传 ipa 包胜利,但是在 ITC 的构建版本何处找不到应用,苹果也不提醒起因。

及格的手表 AppIcon 图示:

2、假如 WatchApp 支持表盘小组件功能,那么上架传给 ITC 的应用功能截图也不要带表盘组件功能的截图,只有带应用内的截图即可,否则会被苹果以为你开发的也是手表看时间的应用,休会不如苹果自家的看时光的应用,会被拒。

以下两张利用内截图可以上传 ITC

以下带表盘功能小组件的截图就不克不及上传到 ITC

7、参考链接

https://developer.apple.com/watchos/human-interface-guidelines/overview/

https://developer.apple.com/library/content/documentation/General/Conceptual/WatchKitProgrammingGuide/index.html

http://www.jianshu.com/p/56aa823dd903

https://my.oschina.net/u/2340880/blog/518866

http://shinancao.github.io/2016/06/19/iOS-Watch-3/

纽约国际娱乐城官 www.967.com 纽约国际上网导航 www.ny0044.com

{Copyright 2017 纽约国际娱乐城官网 All Rights Reserved
联系电话: 联系传真: 电子邮箱: 联系地址: