首页 > 其他 > 详细

WatchKit控件叠加达到类似addSubview的效果

时间:2015-07-22 13:10:19      阅读:170      评论:0      收藏:0      [点我收藏+]

最近在玩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和手机端数据传输的速度和电量消耗问题,尽量小一些,图片压缩一些。

写的比较简单,讲明了方法实现,具体的可以实践一下玩一玩,欢迎大家留言交流。

版权声明:本文为博主原创文章,欢迎转载但请保留文章出处。http://blog.csdn.net/u010124617

WatchKit控件叠加达到类似addSubview的效果

原文:http://blog.csdn.net/u010124617/article/details/47000515

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!