Как добавить общий вид к разным xib? - PullRequest
0 голосов
/ 26 августа 2011

Я новичок в программировании iPhone / iPad.У меня вопрос, как я могу добавить общий вид для двух или более видов (или XIB-файл).скажем, например, я планирую добавить общее меню, которое будет отображаться на разных XIB.В настоящее время я добавляю одинаковые элементы (кнопки) ко всем xibs.есть ли удобный способ?

Ответы [ 2 ]

0 голосов
/ 26 августа 2011

Почему вы не используете контроллер панели вкладок?

Контроллер панели вкладок пользователя, скрытие панели вкладок и добавление пользовательских элементов меню (кнопок). См. Приведенный ниже код и попробуйте.

- (void) hideTabBar
{
     for(UIView *view in tabController.view.subviews)
     {
         if([view isKindOfClass:[UITabBar class]])
         {
            view.hidden = YES;
            break;
         }
     }
}

- (void) addCustomTabs
{
     totalTabs = 5;
     CGRect rect = CGRectMake(0.0, 0.0, 64.0, 49.0);

     tabScroller = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0, 460.0-rect.size.height, 320.0, rect.size.height)];
     tabScroller.backgroundColor = [UIColor clearColor];
     tabScroller.showsHorizontalScrollIndicator = NO;
     [tabController.view addSubview:tabScroller];

     float x = 0.0;
     for (int i = 0; i < totalTabs; i++) {
          customTabs[i] = [UIButton buttonWithType:UIButtonTypeRoundedRect];
          customTabs[i].frame = CGRectMake(x, 0.0, rect.size.width, rect.size.height);
          customTabs[i].tag = i;
          [customTabs[i] addTarget:self action:@selector(selectTab:) forControlEvents:UIControlEventTouchUpInside];
          [customTabs[i] setTitle:[NSString stringWithFormat:@"%d",i+1] forState:UIControlStateNormal];
          [tabScroller addSubview:customTabs[i]];
          x += rect.size.width;
      }

      tabScroller.contentSize = CGSizeMake(x, rect.size.height);
}

- (void) selectTab:(id)sender
{
      int tabID = [sender tag];

      for (int i = 0; i < totalTabs; i++) {
         customTabs[i].selected = NO;
      }

      customTabs[tabID].selected = YES;
      tabController.selectedIndex = tabID;

}
0 голосов
/ 26 августа 2011

Выберите общий вид в файле MainWindow.xib, а также его IBOutlet и свойство в файле AppDelegate.

Подключите ваш IBOutlet правильно, и когда вы будете использовать его в другом контроллере представления, вы должны создать свой экземпляр appDelegate, а затем добавить свой общий вид в контроллер представления и установить его фрейм.

Пример как ...

[appDelegate.indicatorView setFrame:CGRectMake(107, 213, 106, 81)];
[self.view addSubview:appDelegate.indicatorView];

Где appDelegate - ваш объект экземпляра, и, создав свойство представления, вы можете получить к нему доступ .. IndicatorView - это ваше общее представление в MainWindow.xib файле ..

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