Apple Watch开发文档--7

界面对象

你使用界面对象来操作WatchKit app的UI. 一个界面对象是一个WKInterfaceObject类或者是它的子类的实例. WatchKit 库提供了大部分(并非全部)的可视化的元素,你可以添加到你的故事板文件的UI. 界面对象不是view,他们是与在apple watch上使用的真实view进行无线交流的代理对象.

注意:界面对象和其相关的apple watch的视图交流是信息从你的watchKit extension流向你的Apple watch的一种方式.换句话说,你给当前的界面对象设置值,但是你不能得到其当前属性的值. 在apple watch上检索数据,改变数据,把这些数据写回设备,在性能上有影响.因此建议维持你在watchKit extension的界面配置.

创建一个界面对象

你通过向界面控制器中添加声明的属性来间接创建对象,连接相关的属性到故事板中的相关元素. 你不自己生成和初始化界面元素. 在初始化界面控制器对象的时候,WatchKit 自动为连接的界面元素创建.

当为界面对象添加声明元素的时候,设置为合适的类型的类,并且在声明中包含IBOutlet关键词. 例如,如下声明一个标签:

swift
class MySwiftInterfaceController {
    @IBOutlet weak var label: WKInterfaceLabel!
}

OBJECTIVE-C
@interface MyHelloWorldController()
@property (weak, nonatomic) IBOutlet WKInterfaceLabel* label;
@end

在界面控制器中的每一个声明的属性连接到故事板中相关的元素.一种快速创建属性声明和连接他们到相应对象的方法是,在xcode中使用辅助编辑器. 在辅助编辑器展示出来之后,ctrol拖拽一个故事板中的元素到你自己定义的类中来创建outlet. (swift 中拖拽到你的类定义)。 在它提示你的outlet的名字之后,xcode在你的类中创建了一个属性声明,并连接它到了故事板元素.

在设计期配置你的界面

在设计期,使用Xcode在你的故事板配置你的界面元素. 对许多布局相关的属性,设计期是唯一可以配置的时间. 例如,你可以使用WKInterfaceLabel改变标签的文本,颜色和字体,但是你不能改变行数和每行的高度. 这些属性必须在Xcode中配置,如图7-1.

图7-1 配置标签对象

关于更多配置界面对象的信息,看你的界面对象相关的类

在运行期修改你的界面

在watchKit extension的代码中,你可以调用任何相关的界面对象的方法来更新的app的UI. 界面控制器仅仅在它激活的,包含初始化的时间,可能改变界面对象的配置. 在你的init,awakeWithContext 和willActive方法中,给标签对象,图片对象,用户界面的其他对象赋值. 你可能在你的界面控制器方法中更新他们.

在初始化期间,让你的watchKit在做其他事情之前初始化你的界面控制器类是重要的. WKIterfaceController的初始化方法和它WatchKit创建界面对象的子类.因此任何你为界面控制器写的初始化代码必须首先调用他的super实现.列表7-1展示了一个界面控制器init方法的例子,包含一个外链(称为label)WKInterfaceLabel对象.

初始化界面控制器

SWIFT

override init {
    // Initialize variables here.
    super.init

    // It is now safe to access interface objects.
    label.setText("Hello New World")
}
OBJECTIVE-C

- (instancetype)init {
    // Always call super first.
    self = [super init];
    if (self){
        // It is now safe to access interface objects.
        [self.label setText:@“Hello New World”];
    }
    return self;
}

为了改善性能和电池的生命,WatchKit库优化了任何试图去设置app界面对象值. 任何时候,你为一个或者多个界面对象在同一个循环迭代中多次设置值,新的值会并合并传输到apple Watch来改善效率.合并改变意味着只有最后一次的改变来赋值给对象. 更重要的是,对同一属性设置同样的值,会产生一个长的日志信息去帮助你追踪相同的调用.

关于配置你的界面对象的方法,看相关的类的描述

回应用户的交互

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值