如何一起使用xib和UIView子类?
我想创build一些自定义视图,可重用的UI组件,并且不希望在UIView子类中的代码中布置UI。 我想为此使用一个xib。 我自己用了一个xib。 我已经用iteself使用了一个UIView子类。 但我没有把它们一起使用。 我如何“附加”彼此? 我想使用IBOutlets来访问我的自定义视图中的UILabels。
这种事会起作用吗?
NSArray *xib = [[NSBundle mainBundle] loadNibNamed:@"MyCustomView" owner:self options:nil]; MyCustomView *view = [xib objectAtIndex:0]; view.myLabel.text = @"fred";
是的,这是它的方式,当你加载不是父母viewControllers的xibs
编辑2013年8月15日:
你不能总是假定你将会从返回的NSArray的索引0中得到你正在寻找的内容,这是使用types检查的好方法。
NSArray *xibArray = [[NSBundle mainBundle] loadNibNamed:@"MyCustomView" owner:nil options:nil]; MyCustomView *myView = nil; for (id xibObject in xibArray) { //Loop through array, check for the object we're interested in. if ([xibObject isKindOfClass:[MyCustomView class]]) { //Use casting to cast (id) to (MyCustomView *) myView = (MyCustomView *)xibObject; } }