UIView и XIB соединения. Отображение это? - PullRequest
0 голосов
/ 17 октября 2011

Как я могу отобразить файл XIB / NIB на UIView? Я искал, но не нашел этого. Я хочу отобразить интерфейс XIB на главном экране, у меня есть пять файлов XIB, и мне нужно каждоеодин будет отображаться в UIView! Некоторые люди говорили об этом коде кода, но где я реализую это:

NSArray *screens=[[NSBundle mainBundle] loadNibNamed:@"JaneiroClass" owner:self options:nil];          
        [self addSubview:[screens objectAtIndex:0]];

Ответы [ 2 ]

2 голосов
/ 17 октября 2011

Это загрузит представление из XIB. UINib также кеширует, чтобы вы могли быстро их удалить.

UINib *nib = [UINib nibWithNibName:@"TestView" bundle:nil];
UIView *myView = [[nib instantiateWithOwner:self options:nil] objectAtIndex:0]];

instantiateWithOwner возвращает массив объектов верхнего уровня в XIB. В приведенном выше случае было только одно представление (с другими объектами из библиотеки), поэтому мы получили objectAtIndex: 0.

Как только у вас появится представление, вы можете добавить его к другим представлениям. Например, вы можете вызвать addSubView в другом представлении, передавая это:

[someView addSubView:myView];
1 голос
/ 17 октября 2011

В своем блоге я опубликовал статью о загрузке пользовательских видов из пера http://effectivemobility.blogspot.com/2011/05/using-custom-cells-in-your-uitableview.html

Ключевая часть этого метода

+ (id)customViewForClass:(Class)customClass {
    NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass(customClass) owner:nil options:nil];
    for ( id currentObject in topLevelObjects ) {
        if ( [currentObject isKindOfClass:customClass] ) {
            return currentObject;
        }
    }

    return nil;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...