diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 4dc96406..00000000 Binary files a/.DS_Store and /dev/null differ diff --git a/iOS/Example/Example/DemoVC.m b/iOS/Example/Example/DemoVC.m index 38e215e1..02f7f354 100644 --- a/iOS/Example/Example/DemoVC.m +++ b/iOS/Example/Example/DemoVC.m @@ -4,16 +4,10 @@ // #import "DemoVC.h" -#import "DoricContext.h" -#import "DoricLayouts.h" -#import "DoricExtensions.h" -#import "DoricRootNode.h" -#import "DoricLocalServer.h" +#import "Doric.h" @interface DemoVC () @property(nonatomic, copy) NSString *filePath; -@property(nonatomic, strong) DoricContext *doricContext; -//@property(nonatomic, strong) DoricLocalServer *localServer; @end @implementation DemoVC @@ -31,21 +25,15 @@ - (void)viewDidLoad { NSString *demoPath = [path stringByAppendingPathComponent:@"demo"]; NSString *fullPath = [demoPath stringByAppendingPathComponent:self.filePath]; NSString *jsContent = [NSString stringWithContentsOfFile:fullPath encoding:NSUTF8StringEncoding error:nil]; - self.doricContext = [[DoricContext alloc] initWithScript:jsContent source:self.filePath]; - [self.doricContext.rootNode setupRootView:[[DoricStackView new] also:^(DoricStackView *it) { - it.backgroundColor = [UIColor whiteColor]; - it.layoutConfig = [[DoricLayoutConfig alloc] - initWithWidth:DoricLayoutAtMost - height:DoricLayoutAtMost - margin:DoricMarginMake(0, 88, 0, 0) - ]; + DoricPanel *panel = [DoricPanel new]; + [panel.view also:^(UIView *it) { + it.width = self.view.width; + it.height = self.view.height - 88; it.top = 88; [self.view addSubview:it]; - }]]; - [self.doricContext initContextWithWidth:self.view.width height:self.view.height]; -// [self.doricContext.driver connectDevKit:@"ws://192.168.11.38:7777"]; -// self.localServer = [[DoricLocalServer alloc] init]; -// [self.localServer startWithPort:8910]; + }]; + [self addChildViewController:panel]; + [panel config:jsContent alias:self.filePath]; } @end \ No newline at end of file diff --git a/iOS/Pod/Classes/Doric.h b/iOS/Pod/Classes/Doric.h index 21adbf24..705cc394 100644 --- a/iOS/Pod/Classes/Doric.h +++ b/iOS/Pod/Classes/Doric.h @@ -19,4 +19,5 @@ #import "DoricViewNode.h" #import "DoricRootNode.h" #import "UIView+Doric.h" -#import "DoricUtil.h" \ No newline at end of file +#import "DoricUtil.h" +#import "DoricPanel.h" \ No newline at end of file diff --git a/iOS/Pod/Classes/DoricPanel.h b/iOS/Pod/Classes/DoricPanel.h new file mode 100644 index 00000000..a262ddce --- /dev/null +++ b/iOS/Pod/Classes/DoricPanel.h @@ -0,0 +1,28 @@ +/* + * Copyright [2019] [Doric.Pub] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// +// Created by pengfei.zhou on 2019/11/23. +// + +#import + +#import "DoricContext.h" + +@interface DoricPanel : UIViewController +@property(nonatomic, strong) DoricContext *doricContext; + +- (void)config:(NSString *)script alias:(NSString *)alias; +@end \ No newline at end of file diff --git a/iOS/Pod/Classes/DoricPanel.m b/iOS/Pod/Classes/DoricPanel.m new file mode 100644 index 00000000..d647f1bb --- /dev/null +++ b/iOS/Pod/Classes/DoricPanel.m @@ -0,0 +1,46 @@ +/* + * Copyright [2019] [Doric.Pub] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// +// Created by pengfei.zhou on 2019/11/23. +// + +#import "DoricPanel.h" +#import "Doric.h" + + +@implementation DoricPanel + +- (void)config:(NSString *)script alias:(NSString *)alias { + self.doricContext = [[[DoricContext alloc] initWithScript:script source:alias] also:^(DoricContext *it) { + [it.rootNode setupRootView:[[DoricStackView new] also:^(DoricStackView *it) { + it.width = self.view.width; + it.height = self.view.height; + [self.view addSubview:it]; + }]]; + [it initContextWithWidth:self.view.width height:self.view.height]; + }]; +} + +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; + [self.doricContext onShow]; +} + +- (void)viewDidDisappear:(BOOL)animated { + [super viewDidDisappear:animated]; + [self.doricContext onHidden]; +} +@end \ No newline at end of file