VirtualView
动态创建和发布UI组件的解决方案。
它是我们Tangram解决方案的一部分。当然也可以独立使用。
这是一个动态化创建和发布 UI 组件的方案。
它是我们Tangram方案的一部分。当然它也可以独立使用。
中文介绍:VirtualView iOS
中文文档:VirtualView通用文档,VirtualView iOS文档
功能
- 通过XML编写组件。
- 将XML编译成.out(二进制)文件。
- 在iOS应用程序中加载.out文件。
- 从加载的模板创建组件并将其与数据绑定。
- 显示组件。
简单来说,就是用XML描述一个组件,用我们提供的工具将其编译成.out二进制文件,然后在集成VirtualView的App中直接加载.out文件即可得到一个组件,然后像使用普通UIView一样使用它。
安装
CocoaPods
单独使用VirtualView
pod 'VirtualView'
与Tangram一起使用VirtualView
pod 'Tangram'
CocoaPods将VirtualView作为Tangram 2.x的一部分进行安装。
源代码
或者您可以从发布页面下载源代码并将其放入您的项目中。
如何使用
- 从.out文件中加载组件模板。
if (![[VVTemplateManager sharedManager].loadedTypes containsObject:@"icon_type"]) {
NSString *path = [[NSBundle mainBundle] pathForResource:@"icon_file" ofType:@"out"];
[[VVTemplateManager sharedManager] loadTemplateFile:path forType:@"type_alias"];
}
- 创建组件。
self.viewContainer = [VVViewContainer viewContainerWithTemplateType:@"icon_type"];
[self.view addSubview:self.viewContainer];
- 绑定数据和计算布局(固定大小)。
self.viewContainer.frame = CGRectMake(0, 0, SCREEN_WIDTH, 1000);
[self.viewContainer update:@{
@"type" : @"icon-type",
@"imgUrl" : @"https://test.com/test.png"
}];
- 如果您想计算大小。
[self.viewContainer updateData:@{
@"type" : @"icon-type",
@"imgUrl" : @"https://test.com/test.png"
}];
CGSize size = CGSizeMake(MAX_WIDTH, MAX_HEIGHT);
size = [self.viewContainer estimatedSize:size];
self.viewContainer.frame = CGRectMake(0, 0, size.width, size.height);
[self.viewContainer updateLayout];
查看示例项目中的更多详细信息。
XML编译工具
可执行jar包(需要Java 1.8)位于CompileTool路径中。在示例项目中,我们使用bash脚本来同步XML模板更改。您可以在以下位置找到脚本
更多详细信息请点击此处。
微信群
搜索 tangram_
或扫描以上二维码添加 Tangram 为好友,以便我们邀请您入群。