iWatch 开发 3: UI 组件说明

2023-11-30 16:58
文章标签 组件 开发 ui 说明 iwatch

本文主要是介绍iWatch 开发 3: UI 组件说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这里写图片描述


WKInterfaceLabel使用

WKInterfaceLabel 类似iOS 组件中的UILabel, 可通过使用 setText 的方式来设置具体的值,这里就不做多阐述。

WKInterfaceImage 使用

WKInterfaceImage 类似于 UIImageView, 使用时,可用setImage 来设置图片。它的接口如下:

@class UIImage;@protocol WKImageAnimatable <NSObject>// Play all images repeatedly using duration specified in interface description.
- (void)startAnimating;// Play a subset of images for a certain number of times. 0 means repeat until stop.
- (void)startAnimatingWithImagesInRange:(NSRange)imageRange duration:(NSTimeInterval)duration repeatCount:(NSInteger)repeatCount;- (void)stopAnimating;@endWK_CLASS_AVAILABLE_IOS(8_2)
@interface WKInterfaceImage : WKInterfaceObject <WKImageAnimatable>- (void)setImage:(nullable UIImage *)image;
- (void)setImageData:(nullable NSData *)imageData;
- (void)setImageNamed:(nullable NSString *)imageName;- (void)setTintColor:(nullable UIColor *)tintColor;@endNS_ASSUME_NONNULL_END

WKInterfaceTable

相比于iOS 中的UITableViewController来说,iwatch中的WKInterfaceTable功能就简单多了,它没有delegate 也无需设置数据源。

在组件库中选中WKInterfaceTable 拖入Interface.storyboard中,并在代码中形成对应的关联,这里有一点要注意一下,那就是这个必须要设置 Row Controller 的identifier, 不然数据就无法加载出来。

在这里就使用静态的数据让这个Table 控件来加载出来, 代码如下:

NSMutableDictionary *phoneContact = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"13776054770", @"约翰",@"13776054770", @"约翰1",@"13776054771", @"约翰2",@"13776054772", @"约翰3",@"13776054773", @"约翰4", nil];[_contactTableV setNumberOfRows:phoneContact.count withRowType:@"MyTableRowControl"];NSArray *namesArray = phoneContact.allKeys;for(int i = 0; i < phoneContact.count; i++){NSString *name = [namesArray objectAtIndex:i];NSString *phone = [phoneContact objectForKey:name];MyTableRowControl *row = [_contactTableV rowControllerAtIndex:i];[row.contactName setText:name];[row.phoneNo setText:phone];}

table点击事件,通过重写实现InterfaceController 来处理:

- (void)table:(WKInterfaceTable *)table didSelectRowAtIndex:(NSInteger)rowIndex{NSLog(@"我点击了 %ld 行", (long)rowIndex);
}

这里写图片描述

WKInterfaceButton

iWatch 按钮控件,可用的API 如下:

NS_ASSUME_NONNULL_BEGIN@class UIImage, UIColor;WK_CLASS_AVAILABLE_IOS(8_2)
@interface WKInterfaceButton : WKInterfaceObject- (void)setTitle:(nullable NSString *)title;
- (void)setAttributedTitle:(nullable NSAttributedString *)attributedTitle;- (void)setBackgroundColor:(nullable UIColor *)color;
- (void)setBackgroundImage:(nullable UIImage *)image;
- (void)setBackgroundImageData:(nullable NSData *)imageData;
- (void)setBackgroundImageNamed:(nullable NSString *)imageName;- (void)setEnabled:(BOOL)enabled;@endNS_ASSUME_NONNULL_END

按钮点击事件,可以通过storyboard 拖拽的方式来实现,也可通过代码来实现。

WKInterfaceDate

日期控件,可用API 如下:

NS_ASSUME_NONNULL_BEGIN@class UIColor;WK_CLASS_AVAILABLE_IOS(8_2)
@interface WKInterfaceDate : WKInterfaceObject- (void)setTextColor:(nullable UIColor *)color;- (void)setTimeZone:(nullable NSTimeZone *)timeZone;
- (void)setCalendar:(nullable NSCalendar *)calendar;@endNS_ASSUME_NONNULL_END

WKInterfaceTimer

时间控件, 可用 API 如下:

NS_ASSUME_NONNULL_BEGIN@class UIColor;WK_CLASS_AVAILABLE_IOS(8_2)
@interface WKInterfaceTimer : WKInterfaceObject- (void)setTextColor:(nullable UIColor *)color;- (void)setDate:(NSDate *)date; // count up/down from current date to this date
- (void)start;
- (void)stop;@endNS_ASSUME_NONNULL_END

好了。祝大家生活愉快。多多收获友谊和爱情。如果想获取更多的讯息,请扫描下方二维码关注我的微信公众号:

这里写图片描述

这篇关于iWatch 开发 3: UI 组件说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/437811

相关文章

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Spring Boot Actuator使用说明

《SpringBootActuator使用说明》SpringBootActuator是一个用于监控和管理SpringBoot应用程序的强大工具,通过引入依赖并配置,可以启用默认的监控接口,... 目录项目里引入下面这个依赖使用场景总结说明:本文介绍Spring Boot Actuator的使用,关于Spri

基于Python开发PPTX压缩工具

《基于Python开发PPTX压缩工具》在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,不便于传输和存储,所以本文将使用Python开发一个PPTX压缩工具,需要的可以了解下... 目录引言全部代码环境准备代码结构代码实现运行结果引言在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

Linux中shell解析脚本的通配符、元字符、转义符说明

《Linux中shell解析脚本的通配符、元字符、转义符说明》:本文主要介绍shell通配符、元字符、转义符以及shell解析脚本的过程,通配符用于路径扩展,元字符用于多命令分割,转义符用于将特殊... 目录一、linux shell通配符(wildcard)二、shell元字符(特殊字符 Meta)三、s

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j