我想在IOS(objective-c)上重现WPF中的声明性编程。
在WPF中,我可以使用这样的控件:
<MediaElement Name="myVideo" Source="C:WINDOWSsystem32oobeimages intro.wmv" Width="450" Height="400" >
确切的代码是:
MediaElement me = new MediaElement();
me.Id = "myVideo";
me.Height=450;
...
这在objective-C(IOS7)上可以用类似的方式实现吗?请举例说明如何实现这一点。
有没有实现复合模式的库可以在IOS7中使用?
编辑:这是一个真正的问题,如果可以的话,我想在一个真实的项目上实现它
编辑2:我想将NSString转换为xib文件,并将其显示为视图中的控件
*编辑3:
我收到了来自服务器的JSON
格式的响应,如下所示:
{
"alignment" : "center",
"text" : "Just a text",
"type" : "label",
"textColor" : "black",
"width" : "300",
"height" : "44",
"backgroundColor" : "white",
"fontName" : "Helvetica",
"fontSize" : "15",
"x" : "75",
"y" : "200"
}
在实现文件中解释为:
UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(75, 200, 300, 44)];
label.backgroundColor = [UIColor whiteColor];
label.font = [UIFont fontWithName:@"Helvetica" size:15];
label.text = @"Just a text";
label.textAlignment = NSTextAlignmentCenter;
label.textColor = [UIColor blackColor];
[self.view addSubview:label];
根据问题的标题,您似乎正在寻找一种"提取字符串并从中生成对象"的方法。
这有点可能。我想你已经知道如何解析字符串了。
如果您有类的名称,则始终可以创建对象。
id newObject = [[NSClassFromString(@"classname") alloc] init];
键将是要设置的属性的名称。
如果该类是KVC兼容的,则可以将其属性设置为设置决策条目。
[newObject setValue:@"John Doe" forKey:@"name"];
其中@"John Doe"和@"name"将是原始字符串的一部分-通过解析提取。
为Q Edit2:添加
如果您正在考虑制作自己的运行时xib文件,这些文件可以随时创建,并用作适当的xib文件。编译"应用程序捆绑包中的应用程序附带的"xib文件(ibtool)。
您可以创建自己的"对象工厂",该工厂获取并解析文本文件,并将其用作创建对象运行时的蓝图。如果结果应该是某种UIView
,您甚至可以使用XML或JSON格式来定义视图间的关系。
请注意,不能使用链接过程中遗漏的类。因此,您必须在代码中创建所有类的伪实例,以便能够使用此"对象工厂"创建这些类。
编辑:但听起来你的应用程序可能会被拒绝,因为你的应用可以在某种程度上"下载新代码"。
来自应用商店审查指南:
2.7以任何方式或形式下载代码的应用程序将被拒绝