на верхней панели вкладок контроллера или сегментирован - PullRequest
0 голосов
/ 09 января 2012

ребята, мне интересно, сейчас я нахожусь в процессе обучения разработке приложений.я видел приложения CNBC на ipad, которые выглядят как на картинке: (извините, новый пользователь не может напрямую публиковать изображение D:)

http://images.thoughtsmedia.com/resizer/thumbs/size/600/at/auto/1291813093.usr105634.jpg

мой вопрос: что это за 2 бара?поверх приложения ?? (с рынками и индексами)

это контроллер табуляции ??если это то, как мы помещаем его поверх приложения, а не внизу, как обычно, и как у нас есть другая панель вкладок внутри панели вкладок ???

Я ценю вашу помощь, и извините замой плохой английский: 3

1 Ответ

0 голосов
/ 17 января 2012

хорошо, я нашел решение для этого, на данный момент я пробовал как настраиваемую панель вкладок, так и сегментированный контроллер, но я нашел их оба рискованными и слишком сложными

, поэтому я провожу небольшой эксперимент с простымКнопка

вот основная идея

Сначала я настроил панель инструментов и задал ей фон

- в viewController.h

//adding my viewcontrollers

@class notLoggedHome;
@class LoggedInHome;
@class NABViewController;


//defining all the objects

@properties (nonatomic, strong) UIToolBar *mainToolBar;
@properties (nonatomic, strong) UIButton *toolBarBut1, *toolBarBut2, *toolBarBut3;
@properties (nonatomic, strong) UIImageView *logoImage;


@property (nonatomic, strong) notLoggedHome *viewNotLoggedHome;
@property (nonatomic, strong) LoggedInHome *viewLoggedInHome;
@property (nonatomic, strong) NABViewController *viewNAB;

@properties NSInteger lastTag;

-in viewController.m

@synthesize mainToolBar, toolBarBut1, toolBarBut2, toolBarBut3;
@synthesize logoImage, lastTag;
@synthesize viewNotLoggedHome, viewLoggedInHome, viewNAB;

-(void)viewDidLoad
{
    lastTag = 100;
    self.view.backgroundColor = [UIColor colorWithRed:21.0/255.0 green:21.0/255.0 blue:21.0/255.0 alpha:1];


    //---

    //---fakeTabBar set up===

    viewNotLoggedHome = [[notLoggedHome alloc]init];
    viewLoggedInHome = [[LoggedInHome alloc]init];
    viewNAB = [[NABViewController alloc]init];



    //creating the fakeTabBar
    mainToolBar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 70)];
    [mainToolBar setBackgroundImage:[UIImage imageNamed:@"menu_bar.jpg"] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];

//defining images
    imgHome = [UIImage imageNamed:@"menu_home.png"];
    imgHomeS = [UIImage imageNamed:@"menu_home_s.png"];
    imgLogo = [UIImage imageNamed:@"menu_bar_logo_ep.png"];

    UIImageView *logoImage = [[UIImageView alloc]initWithImage:imgLogo];
    logoImage.frame = CGRectMake(0, 0, imgLogo.size.width, imgLogo.size.height);


    //--button setting====

    toolBarBut1 = [UIButton buttonWithType:UIButtonTypeInfoLight];
    [toolBarBut1 setFrame:CGRectMake(imgLogo.size.width, 1, imgHome.size.width, imgHome.size.height)];
    toolBarBut1.tag = 0;
    toolBarBut1.backgroundColor = [UIColor colorWithWhite:1 alpha:0];
    [toolBarBut1 setImage:imgHome forState:UIControlStateNormal];
    [toolBarBut1 setImage:imgHomeS forState:UIControlStateSelected];
    [toolBarBut1 addTarget:self action:@selector(barPressed:) forControlEvents:UIControlEventTouchUpInside];

//do the same with the other 2 button

    //---------------------

    [mainToolBar addSubview:logoImage];
    [mainToolBar addSubview:toolBarBut1];
//do the same with the other 2 button
    [self.view addSubview:mainToolBar];

    [super viewDidLoad];
}

-(void)barPressed:(id)sender
{
    UIButton *button = (UIButton *)sender;
    if(button.tag == 0 && button.tag != lastTag)
    {
        [viewNAB removeFromParentViewController];
        [viewNotLoggedHome removeFromParentViewController];
        [self.view addSubview:viewLoggedInHome.view];
        button.selected = YES;
    }
    if(button.tag == 1 && button.tag != lastTag)
    {
        [viewNAB removeFromParentViewController];
        [viewLoggedInHome removeFromParentViewController];
        [self.view addSubview:viewNotLoggedHome.view];
        button.selected = YES;
    }
    if(button.tag == 2 && button.tag != lastTag)
    {
        [viewLoggedInHome removeFromParentViewController];
        [viewNotLoggedHome removeFromParentViewController];
        [self.view addSubview:viewLoggedInHome.view];
        button.selected = YES;
    }

    lastTag = button.tag;
}

, поэтому основная идея заключается в создании поддельной панели вкладок с помощью панели инструментов, назначении UIButton (s) на панель инструментов в качестве поддельного tabbaritem и предоставлении механизма каждой кнопке, которая в дальнейшем будет переключатьсяваши viewcontrollers (вы должны сначала выделить viewcontrollers в файле реализации)

это хорошо работает для меня, просто не забудьте установить Y-образную рамку контроллеров представления + (высота панели инструментов), потому что в противном случае она будет закрывать панель инструментов позже

:)

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