UIView,挣扎着一些基础知识(xcode,iOS)

时间:2012-10-31 07:46:49

标签: ios xcode uiview

我在基于故事板的iOS应用程序中遇到了一些基础知识。

我喜欢加载一些在NIB-Files(xib)中构建的UIView。如果我加载视图,将调用initWithCoder - 方法。

现在我喜欢加载“绿色”视图;我读过,我能够在initWithCoder中进行一些其他的初始化 - 但只有“新”对象,没有什么,关于View本身,就像内存原因中的self.backgroundColor一样(也许对象不是' t完成初始化)。

在view-Class本身中添加某些内容的最佳位置在哪里,例如setBackgroundColorsetCornerRadius

1 个答案:

答案 0 :(得分:0)

我这样做:

NSArray* nibViews = [[NSBundle mainBundle] loadNibNamed:@"MyCustomView" owner:nil options:nil];
self = [nibViews objectAtIndex: 0]; //here it would be best practice to loop through nibViews and get the first view that is member of your class. 

此外,nib文件中的视图设置为MyCustomView而不是UIView。 在这两行之后,您可以设置所需的任何值。但请注意,如果您为超级设置框架,它将被xib文件中的值覆盖。所以最好在加载笔尖后设置所有内容,而不是之前。

据我所知,[{1}}加载没有回调,因为UIViewviewDidLoad

希望这有帮助。

干杯!

编辑:

您可以这样做:

UIViewController

然后只使用- (id)initWithInfo:(MyInfoClass *) selectedInfo Body:(NSString *) _body { if ((self = [super init])) { NSArray* nibViews = [[NSBundle mainBundle] loadNibNamed:@"MyCustomClass" owner:nil options:nil]; self = [nibViews objectAtIndex: 0]; [self setInfo:selectedInfo]; [self setBody:_body]; } } 方法。