Подтвердить что ты не робот

Как использовать подкласс xib и UIView вместе?

Я хотел бы создать пару пользовательских представлений, разновидностей многократно используемых компонентов пользовательского интерфейса, и предпочел бы не размещать UI в коде в подклассе UIView. Я хотел бы использовать xib для этого. Я сам использовал xib. И я сам использовал подкласс UIView. Но я не использовал их вместе. Как "присоединить" их друг к другу? Я хотел бы использовать IBOutlets для доступа к UILabels в моем пользовательском представлении.

Будет ли это работать?

NSArray *xib = [[NSBundle mainBundle] loadNibNamed:@"MyCustomView" owner:self options:nil]; 
MyCustomView *view = [xib objectAtIndex:0];
view.myLabel.text = @"fred";
4b9b3361

Ответ 1

Да, что он работает, когда вы загружаете xibs, которые не являются родителями для просмотраControllers

Редактировать 15 августа 2013 года:

Вы не всегда можете просто предположить, что вы получите именно то, что ищете, из индекса 0 возвращенного NSArray, что делает его полезным использовать проверку типов.

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;
    }
}