WatchKit控件叠加达到类似addSubview的效果
来源:互联网 发布:java游戏编程实例 编辑:程序博客网 时间:2024/05/21 05:24
最近在玩Watch,通过研究watch的布局后发现,其InterfaceController原生布局只有横向和竖向两种,且控件之间不能交叠,也无法addSubview那样添加子控件。
但是我在网易新闻中看到如下界面:
很好奇他的标题是如何做到叠在图片上的,思考许久想到如下方案:
动态生成相应的图片,直接处理出来。
这是我实现后的效果图:
可以看到标题已经叠在了图片之上。
处理具体方法步骤为:
1.在应用(手机中的那个应用)的AppDelegate的
- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void(^)(NSDictionary *replyInfo))reply
方法中,创建imageView,并在做好合适的布局,add完相应的view之后的,利用截图功能,把view的截图作为图片发送给watch。这样这张图片看起来就像是添加了子控件的。
2.在watch端的InterfaceController中,拿到相应的图片和其他信息,做watch标准的布局。
[WKInterfaceController openParentApplication:userInfo reply:^(NSDictionary *replyInfo, NSError *error){ //主应用处理完后的回调,返回extension所需的数据 dispatch_async(dispatch_get_main_queue(), ^{ NSString *words = [replyInfo objectForKey:@"words"]; NSData *data = [replyInfo objectForKey:@"image"]; [_image setImageData:data]; [_label setText:words]; }); }];
其他的方案,也许在watch端直接处理也可以,不过性能上我个人偏向在手机端处理完提交过来更好一些,当然我们也要考虑watch和手机端数据传输的速度和电量消耗问题,尽量小一些,图片压缩一些。
写的比较简单,讲明了方法实现,具体的可以实践一下玩一玩,欢迎大家留言交流。
0 0
- WatchKit控件叠加达到类似addSubview的效果
- 算法中递归方式达到类似栈的效果
- 开发日志:使超链接点击一次后失效,让其达到类似按钮disabled的效果
- 控件布局(View)叠加效果
- 中间镂空效果:A 视图上叠加 B视图,只显示B视图中间部分,达到好像中间镂空的效果
- div层的叠加效果
- cell 中添加控件self.addSubview()与self.contentView.addSubview()的区别
- Silverlight中实现类似Telerik的TileView控件效果
- 自定义ViewGroup可折叠控件,类似CoordinatorLayout的效果
- cocos2dx creator 创建类似gallery控件的循环效果
- RelativeLayout 下的控件叠加
- IOS开发addSubView控件显示不了的原因
- 利用flipview控件实现上下滚动达到公告条的效果
- Delphi中如何使用TEdit控件和TListBox控件组合使用达到TComboBox控件一样的效果呢?
- JQuery的bind方法效果叠加
- WPF -- 叠加多个 Style 的效果
- RelativeLayout实现叠加View的动画效果
- android RelativeLayout控件或view实现叠加效果
- 小桐学设计模式--策略模式
- Github上的andoird开源组件整理
- hdu1133 Buy the Ticket (卡兰特数应用+java大数)
- Snail—OC学习之可变数组NSMutableArray
- ORACLE系统函数
- WatchKit控件叠加达到类似addSubview的效果
- poj 2299 Ultra-QuickSort 二分+线段树求逆序数
- 黑马程序员——java要点笔记——正则表达式
- 【版本控制】Github for Windows客户端的使用
- 【UIKit】-4-UIActivityIndicatorView - 系统转菊花
- Android不让弹出键盘挡住View
- JAX-WS使用Handler实现简单的WebService权限验证
- Android 离线播放 (HLS)m3u8文件
- shell tr命令