なかなか使い勝手のいいpixaeですがGetting Startedに
リアルタイム更新のためのビデオチュートリアルがリンクされていました。
Pixate Real Time CSS - YouTube
注意
動画ではdelegateファイルに
#import <PXEngine/PXStyleSheet.h>
足して
application:didFinishLaunchingWithOptionsに
[PXStylesheet currentApplicationStylesheet].monitorChanges = YES;
追加せよってなってますが、
Pixate Ver1.0.3では動きません。
Pixate Ver1.0.3でのやり方
headerファイルを漁って見ると
PXEngine.hに
+ (PXStylesheet *)currentApplicationStylesheet;
があるので、
application:didFinishLaunchingWithOptionsに
[PXEngine currentApplicationStylesheet].monitorChanges = YES; NSLog(@"%@", [PXEngine currentApplicationStylesheet].filePath);
追加でOKです。
そうすると
ログに下記のようにシミュレータ上のcssのファイルパスが表示されるので
これを直接編集することで即時反映されると。。。
/Users/rochefort/Library/Application Support/iPhone Simulator/6.1/Applications/9C8105D8-D6D3-47B7-9A08-3A92084739FB/MyButtonDemo.app/default.css
と思って調べてみると
Pixateの公式twitterで呟かれているように
Sample of monitoring CSS file changes with Pixate and RubyMotion. #pixate #rubymotion
これみたいにすればいいようです。
最終的にはコレ
[PXEngine styleSheetFromFilePath:(@"/Users/rochefort/work/xcode/MyButtonDemo/MyButtonDemo/default.css") withOrigin:0]; [PXEngine currentApplicationStylesheet].monitorChanges = YES;
これもファイルパスを直接書いちゃってるので、あと一歩という感じです。
pathForResource:ofType みたいなので取れないのだろうか。
あと、プロダクトコードにこれ入れるの嫌なので
debug時はデフォルトで直接編集できるようにしてほしいなぁ。