如何在iPhone中制作UIButton垂直滑块菜单

时间:2012-08-01 11:58:33

标签: iphone uiscrollview

在我的应用程序中,我想制作带滚动视图的UIButton滑块,当我们滚动按钮的uiscrollview时,按钮将位于中心位置请查看这些应用程序的第一个屏幕http://itunes.apple.com/au/app/id422249255?mt=8我该怎么做?我现在可以使用哪些方法,我使用了UIScrollview的这些委托方法

-(void)scrollViewDidScroll:(UIScrollView *)aScrollView
{


}

(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{

}

(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)aScrollView
{

}

1 个答案:

答案 0 :(得分:1)

这样做:

在.m文件的标题中添加这些

#define viewWidth 40   //button width
#define viewHeight 30  //button height

#define viewOffsetX 5  //button left ie X
#define viewOffsetY 5  //button right ie Y

#define viewXspace 15  //button from top X space
#define ViewYspace 5   //button from bottom

你有按钮的图像将它们添加到数组中,即arrBtnImages

现在使用这些方法在scrollView中加载按钮,即viewDidLoad方法中的scView

- (void)loadBtnInSlider
{ 
 int row = 1;
 int col = [arrBtnImages count] / row;

 if ([mut_arrImages count] % col != 0  ) {
    col++;
 }

 int index = 0;
 for (int i=0; i < row  ;  i++)
 {

    CGRect frame;
    frame.size = CGSizeMake(viewWidth, viewHeight);
    frame.origin.y = (i * viewHeight) + (i * ViewYspace) + viewOffsetY;

    for (int j= 0; j < col  && index < [mut_arrImages count]; j++) {

        CGRect frame;
        frame.size = CGSizeMake(viewWidth, viewHeight);
        frame.origin.x = (j * viewWidth) + (j * viewXspace) + viewOffsetX;
        frame.origin.y = viewOffsetY;

        UIButton *btn = [[UIButton alloc]initWithFrame:frame];
        [btn setTag:j];
        [btn addTarget:self action:@selector(btnSelector:) forControlEvents:UIControlEventTouchUpInside];
        [btn setUserInteractionEnabled:YES];
        [btn setImage:[UIImage imageNamed:[arrBtnImages objectAtIndex:j]] forState:UIControlStateNormal];

        index++;
        [scView addSubview:btn];
        [btn release];
    }
 }
 [scView setContentSize:CGSizeMake(col * (viewWidth+ViewYspace)+viewOffsetY,scView.frame.size.height)];
}

在vieDidLoad中使用此方法,如下所示:

[self loadBtnInSlider];

现在为.h文件中的按钮添加以下选择器方法,它就像这样

-(void)btnSelector:(id)sender
{
    UIButton *btnSelected = sender;
   switch(btnSelected.tag) 
   {
      // add case as much u have button
      case 0:
       //first button called
      break;

      case 1:
       //second button called
      break;
      ::
      ::
   }
}