Как я могу сделать центральный поднятый элемент вкладки? - PullRequest
6 голосов
/ 14 декабря 2011

Сначала я хочу сказать, что я новичок в разработке приложений для iPhone. Я хочу создать tabbaritem, когда я выберу элемент панели вкладок, тогда он должен выглядеть следующим образом

enter image description here

Заранее большое спасибо.

Ответы [ 5 ]

3 голосов
/ 11 июня 2012

Знайте, что на него уже был дан ответ, но он хотел предложить альтернативный подход.

Подклассирование UITabBarController - плохая идея, согласно документам.У меня также не было никаких проблем, когда я на самом деле пытался использовать UIImagePickerController в качестве одного из контроллеров представления за вложенной панелью вкладок.

Я выбрал гораздо более простой подход, просто наложив uibutton на элемент панели вкладок.Пример проекта можно найти здесь:

https://github.com/group6/RaisedCenterButton

Это всего лишь пример.Вам все еще нужно будет выполнить работу, чтобы включить ее в приложение.

2 голосов
/ 14 декабря 2011

Используйте информацию в этой статье

1 голос
/ 14 декабря 2011

Это было рассмотрено в нескольких уроках. Как большинство этих приложений достигают эффекта, они помещают пользовательскую кнопку UIB, которая соответствует стилю, аналогичному панели вкладок, в верхней части панели вкладок в центре.

iDev Recipes имеет превосходное учебное пособие с примером кода

0 голосов
/ 14 декабря 2011

Для этого вам нужно создать пользовательскую панель вкладок с помощью подкласса UITabBarController.

Файл TabBarController.h:

@interface TabBarController : UITabBarController<UITabBarControllerDelegate>
{
    UITabBarController *tabController;

    UIImageView *img1;
    UIImageView *img2;
    UIImageView *img3;
    UIImageView *img4;
}

.m файл

- (void)viewDidLoad 
{       
    [self loadTabView];
    //[self viewWillAppear:YES];
    [super viewDidLoad];        
}

- (void) loadTabView 
{
    tabController = [[UITabBarController alloc] init];
    tabController.delegate = self;
    tabController.tabBar.backgroundColor = [UIColor clearColor];

    //set offset for tabbar items images. 
    int topOffset = 6;
    int bottomOffset = 6;
    UIEdgeInsets imageInset = UIEdgeInsetsMake(topOffset, 0, -bottomOffset, 0);

    [self.view addSubview:tabController.view];
}

// reset the background image in custom tabbar.
- (void) setTabBarBackground {

    UIImageView *img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"btnbg.png"]];
    img.frame = CGRectOffset(img.frame, 0, 1);
    img.frame = CGRectMake(img.frame.origin.x, img.frame.origin.y-1, img.frame.size.width, img.frame.size.height);
    [tabController.tabBar insertSubview:img atIndex:0];
    [img release];

}

// reset the background image in custom tabbar.
- (void) resetTabBar : (NSString *) tabid
{   
    [img1 removeFromSuperview];

    NSLog(@"tab id - %@",tabid);
    switch ([tabid intValue]) {
        case 0:
            img1 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tab-1.jpg"]];
            break;
        case 1:
            img1 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tab-2.jpg"]];
            break;
        case 2:
            img1 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tab-3.jpg"]];
            break;
        case 3:
            img1 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tab-4.jpg"]];
            break;
        case 4:
            img1 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tab-5.jpg"]];
            break;
        default:
            break;
    }

    img1.frame = CGRectOffset(img1.frame, 0, 1);
    [tabController.tabBar insertSubview:img1 atIndex:0];
    [tabController.tabBar bringSubviewToFront:img1];
    [img1 release];

}

// here push View controllers
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
}

Надеюсь, это даст вам идею ..

0 голосов
/ 14 декабря 2011

Я бы посоветовал не делать этого.Пользователи iOS привыкли к привычной функциональности панели вкладок.Выделение достаточно, чтобы сообщить им, на какой вкладке они находятся.

Ваша дизайнерская идея очень привлекательна, но она обходится дорого.Область над панелью рядом с элементом rased bar теряется, или размер других значков должен быть уменьшен.Это усложнит использование, а не упростит.

Вот хороший совет: возьмите 2 часа из своей занятой жизни и прочитайте Apple Руководство по интерфейсу для человека для iOS от обложки допокрытие.Это увлекательное чтение и даст вам хорошее руководство для подобных вопросов.

...