Как создать скользящую строку меню для кнопок? - PullRequest
0 голосов
/ 05 августа 2011

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

я прошел по следующей ссылке

http://blog.sallarp.com/iphone-sliding-menu/

В приведенной выше ссылке они установили все в методе Appdelegate ... тогда как в моем приложении есть много представлений, которые будут продолжаться дальше ... так кто-нибудь может мне помочь, как реализовать скользящую строку меню для кнопок?

Спасибо.

Ответы [ 2 ]

1 голос
/ 05 августа 2011

.h

IBOutlet UIScrollView *scrollView;

@property ( nonatomic , retain )  IBOutlet UIScrollView *scrollView;

-(void)AppleVijayAtFacebookDotCom:(id)sender;

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

.m

@synthesize scrollView;



-(void)AppleVijayAtFacebookDotCom:(id)sender{


    NSLog(@"AppleVijayAtFacebookDotCom called");


    UIButton *button=(UIButton *)sender;


    if (button.tag == 0) {

        NSLog(@"hey have clicked first button, this is my tag : %i \n\n",button.tag);
    }
    else if (button.tag == 1) {

        NSLog(@"hey have clicked second button, this is my tag : %i \n\n",button.tag);

    }
    // ......like this

    NSLog(@"button clicked is : %iBut \n\n",button.tag);



}       



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

for (int i = 0; i < totalNoOfButtons; i++) {

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

    [button addTarget:self action:@selector(AppleVijayAtFacebookDotCom:) forControlEvents:UIControlEventTouchUpInside];

        //[button1 setImage:[UIImage imageNamed:@"Button.png"] forState:UIControlStateNormal];//with image

        //OR

    [button setTitle:[NSString stringWithFormat:@"%iBut",i] 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 = 10;//half of the width

    button.layer.borderColor=[UIColor redColor].CGColor;

    button.layer.backgroundColor=[UIColor blackColor].CGColor;

    button.layer.borderWidth=2.0f;

    button.tag=i;

    [self.scrollView addSubview:button];

}

self.scrollView.contentSize=CGSizeMake((buttonSize.width + offset) * totalNoOfButtons, buttonSize.height);

    //self.navigationItem.titleView=self.scrollView;//if u have navigationcontroller then enable this line



    }

Не забудьте подключить scrollView в конструкторе интерфейсов

при создании просмотра прокрутки в IB убедитесь, что высота scrollView равна 44. По умолчанию это панель навигации. Так что это будет хорошо выглядеть.

in viewDidLoad call 

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

OUTPUT

enter image description here

1 голос
/ 05 августа 2011

По сути, скользящее меню, подобное тому, к которому вы обращаетесь, состоит из UIScrollView, который содержит кнопки UIB в качестве подпредставлений.Установите для contentSize вида прокрутки значение CGSizeMake (общая ширина кнопок, высота одной кнопки) и включите Scrolling для YES.

Возможно, было бы неплохо создать контроллер представления для управления меню.Этот VC мог бы и производить представление прокрутки и кнопки внутри, и служить целью для действий кнопки.

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