我知道使用界面构建器很容易创建一个NIB文件,但我想知道是否有办法将以前使用的现有UIView归档到NIB中。有没有办法以编程方式创建一个NIB文件?
它看起来像一个NIB文件只是一个特殊类型的捆绑包,其中每个UIView对象都使用NSCoding存档,但我似乎无法找到更多的信息。我发现的所有资源都使用界面构建器来创建适当的NIB文件。
任何帮助,将不胜感激!
我知道使用界面构建器很容易创建一个NIB文件,但我想知道是否有办法将以前使用的现有UIView归档到NIB中。有没有办法以编程方式创建一个NIB文件?
它看起来像一个NIB文件只是一个特殊类型的捆绑包,其中每个UIView对象都使用NSCoding存档,但我似乎无法找到更多的信息。我发现的所有资源都使用界面构建器来创建适当的NIB文件。
任何帮助,将不胜感激!
恐怕你不能。您可以将UIView
存档为任何文件,但不能将其用作nib文件。
您可以使用nib2objc将nib文件的内容转储到Objective-C代码,但我想这不是您想要的。
@Yuji ..你的回答是不正确的。一个“笔尖”和一个“视图”就像同卵双生 - 它们有着不同的“态度”。他们本质上,完全一样,并可能被迫做同样的事情......但他们出生在不同的医院,并与独立的家庭生活在一起。
当你“档案” ..或“拷贝”的观点是根本,而本质上一样的东西IB确实通过encode
和decode
,withCoder
不同,并经常被误解的途径和方法,即
- (id)initWithCoder:(NSCoder*)coder {
if ((self = [super initWithCoder:coder])) {
backgroundColor = [coder decodeObjectForKey:@"backgroundColor"];
uniqueID = [coder decodeObjectForKey: @"uniqueID"];
[self updateTrackingAreas];
if (something) [self addSubview:atv];
} return self; }
- (id)copyWithZone:(NSZone *)zone; { return self; }
- (void) encodeWithCoder:(NSCoder *)aCoder {
[aCoder encodeObject:backgroundColor forKey:@"backgroundColor"];
[aCoder encodeObject:uniqueID forKey:@"uniqueID"];
[aCoder encodeObject:file forKey:@"file"];
[aCoder encodeObject:atv forKey:@"atv"];
[aCoder encodeBool:hasText forKey:@"hasText"];
}
这完全是一个schlemiel schlomozel种类的东西......不同的人为不同的笔画。 Xcode碰巧是一个编译器这是更好的阅读一些疯狂的XML种事情(一个NIB)比我们..虽然我们习惯了与我们的手与客观C.不同的手段为同一目的。
您是否认为Xcode正在向您不知道的汇编程序窃窃私语?不要嫉妒!
有趣的项目! – djdrzzy 2010-08-13 16:36:32