Как использовать xib и подкласс UIView вместе? - PullRequest
20 голосов
/ 01 ноября 2010

Я хотел бы создать пару пользовательских представлений, вроде повторно используемых компонентов пользовательского интерфейса, и предпочел бы не размещать пользовательский интерфейс в коде в подклассе 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";

1 Ответ

14 голосов
/ 01 ноября 2010

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

Редактировать 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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...