WatchKit控制項疊加達到類似addSubview的效果,watchkitaddsubview
最近在玩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