我在界面构建器中创建了一个 UIView,它是滚动视图的子视图。UIView 包含一个按钮和一个标签。我想将此视图用作千篇一律的工具,以便我可以生成此视图的各种实例,这些实例在滚动视图中彼此相邻
我可以以编程方式执行此操作,但这意味着我必须以编程方式以编程方式定义视图大小和子视图,我更愿意在界面构建器中定义视图的一个实例,以便我可以将其布局,然后以编程方式创建该视图的副本. 目标是尽可能使用 interfacebuilder 来定义布局,以减少我需要编写的代码。
我在界面构建器中创建了一个 UIView,它是滚动视图的子视图。UIView 包含一个按钮和一个标签。我想将此视图用作千篇一律的工具,以便我可以生成此视图的各种实例,这些实例在滚动视图中彼此相邻
我可以以编程方式执行此操作,但这意味着我必须以编程方式以编程方式定义视图大小和子视图,我更愿意在界面构建器中定义视图的一个实例,以便我可以将其布局,然后以编程方式创建该视图的副本. 目标是尽可能使用 interfacebuilder 来定义布局,以减少我需要编写的代码。
我创建了一个 UIView 类别来处理这个问题。
@interface UIView (JLTDeepClone)
- (id)deepClone;
@end
@implementation UIView (JLTDeepClone)
- (id)deepClone
{
NSMutableData *data = [NSMutableData data];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:self forKey:@"view"];
[archiver finishEncoding];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
UIView *result = [unarchiver decodeObjectForKey:@"view"];
[unarchiver finishDecoding];
return result;
}
@end
看看 Entity Framework,这听起来像是您正在寻找的东西,应该有助于减少代码行数