码迷,mamicode.com
首页 > 其他好文 > 详细

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

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

标签:watchkit开发   子控件添加   watchkit布局   效果   

最近在玩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的效果

标签:watchkit开发   子控件添加   watchkit布局   效果   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!