Как добавить более 10 кнопок на панель навигации при разработке приложений для iPhone? - PullRequest
0 голосов
/ 27 ноября 2011

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

Для деталей:

  1. UINavigation Bar -> leftBaritem [предыдущая кнопка] + view + rightBaritem [следующая кнопка];

  2. вид будет содержать 8 кнопок. Если я объясню еще раз, это должно выглядеть так:

Предыдущая + | A | Б | C | D | E | F | G | H + следующий

когда я нажму

следующий

тогда это будет выглядеть так:

предыдущая + | Б | C | D | E | F | G | H + следующий

как это для

предыдущий

кнопка.

EDIT:

На этом рисунке три кнопки в представлении, но у меня есть шесть кнопок для добавления в представление "Dashbord, order, Product". Теперь, когда я буду нажимать «>» или «<» или элементы левой / правой панели, будут отображаться кнопки панели навигации, которые находятся вне поля зрения. </p>

enter image description here

Ответы [ 2 ]

1 голос
/ 27 ноября 2011

Вы делаете не то, что нужно. Вы не должны пытаться ввести 8 кнопок в панель навигации.

Вам необходимо переосмыслить свой интерфейс. На ум приходят два разумных подхода:

  • Используйте панель вкладок. Панель вкладок поддерживает обработку большего количества параметров, чем уместится на экране. Например, встроенное приложение «Музыка» имеет 10 вкладок.

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

0 голосов
/ 28 ноября 2011

Я решил эту проблему немного по-другому ....

В viewDidLoad Я взял scrollView и вызвал мою функцию

menuScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0,0,320,40)];
menuScrollView.showsHorizontalScrollIndicator = FALSE;
menuScrollView.showsVerticalScrollIndicator = FALSE;
menuScrollView.bounces = TRUE;


[self createMenuWithButtonSize:CGSizeMake(70.0, 30.0) withOffset:20.0f noOfButtons:7];

Затем в моем function я создал свое меню buttons, которое будет выглядеть как кнопки на navigation bar

-(void)createMenuWithButtonSize:(CGSize)buttonSize withOffset:(CGFloat)offset noOfButtons:(int)totalNoOfButtons{

NSLog(@"inserting into the function for menu bar button creation"); 
for (int i = 0; i < totalNoOfButtons; i++) {

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

    [button addTarget:self action:@selector(mybuttons:) forControlEvents:UIControlEventTouchUpInside];
    if(i==0){
    [button setTitle:[NSString stringWithFormat:@"Dashboard"] forState:UIControlStateNormal];//with title
    }
    else if(i==1){
        [button setTitle:[NSString stringWithFormat:@"Order"] forState:UIControlStateNormal];//with title
    }
    else if(i==2){
        [button setTitle:[NSString stringWithFormat:@"Product"] forState:UIControlStateNormal];//with title
    }
    else if(i==3){
        [button setTitle:[NSString stringWithFormat:@"Customers"] forState:UIControlStateNormal];//with title
    }
    else if(i==4){
        [button setTitle:[NSString stringWithFormat:@"Content"] forState:UIControlStateNormal];//with title
    }
    else if(i==5){
        [button setTitle:[NSString stringWithFormat:@"Site Analysis"] forState:UIControlStateNormal];//with title
    }
    else if(i==6){
        [button setTitle:[NSString stringWithFormat:@"Store Settings"] forState:UIControlStateNormal];//with title
    }
    else if(i==7){
        [button setTitle:[NSString stringWithFormat:@"CMS Settings"] forState:UIControlStateNormal];//with title
    }
    button.frame = CGRectMake(i*(offset+buttonSize.width), 8.0, buttonSize.width, buttonSize.height);
    button.clipsToBounds = YES;
    button.showsTouchWhenHighlighted=YES;
    button.layer.cornerRadius = 0;//half of the width
    //button.layer.borderColor=[UIColor clearColor];
    button.layer.backgroundColor=[UIColor blueColor].CGColor;
    button.titleLabel.font = [UIFont systemFontOfSize:10];
    button.layer.borderWidth=0.0f;
    button.tag=i;
    [menuScrollView addSubview:button];
}
menuScrollView.contentSize=CGSizeMake((buttonSize.width + offset) * totalNoOfButtons, buttonSize.height);
[self.view addSubview:menuScrollView];

}

и это решает ... Happy Coding ...:))

...