Добавить существующее представление с файлом пера в другое представление через Interface Builder - PullRequest
2 голосов
/ 08 ноября 2010

У меня есть файл пера, скажем TestView.xib.Я добавил некоторые компоненты к нему.

Теперь я создал еще один файл пера AnotherTestView.xib

Я хочу добавить представление TestView.xib в AnotherTestView.xib, используя интерфейсный buidler, чтобынужно добавить те же компоненты из TestView снова.Они как базовые компоненты для всех моих взглядов.

Есть ли способ сделать это.Как мы можем установить имя nib-файла для UIView в IB.Или как мы можем добавить это существующее представление с файлом пера в другой файл пера.

1 Ответ

0 голосов
/ 19 июля 2011

Я написал, как мы встраиваем перья с пользовательским просмотром в другие перья в длинном посте в блоге.Crux переопределяет -awakeAfterUsingCoder: в вашем пользовательском представлении, заменяя объект, загруженный из AnotherTextView.xib, на объект, загруженный из «встроенного» пера (TestView.xib).

Что-то вроде этого:

// TestView.m
- (id) awakeAfterUsingCoder:(NSCoder*)aDecoder {
    BOOL theThingThatGotLoadedWasJustAPlaceholder = ([[self subviews] count] == 0);
    if (theThingThatGotLoadedWasJustAPlaceholder) {
        // load the embedded view from its Nib
        TestView* theRealThing = nil;
        NSArray* elements = [[NSBundle mainBundle] loadNibNamed: NSStringFromClass([TestView class])
                                                          owner: nil
                                                        options: nil];
        for (id anObject in elements) {
            if ([anObject isKindOfClass:[TestView class]]) {
                theRealThing = anObject;
                break;
            }
        }

        // pass properties through
        theRealThing.frame = self.frame;
        theRealThing.autoresizingMask = self.autoresizingMask;

        [self release];
        self = [theRealThing retain];
    }
    return self;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...