如何使UIButton的垂直silder在iphone菜单(How to make UIButton

2019-07-30 17:35发布

在我的应用我想打的UIButton滑块与滚动视图中,当我们滚动按钮的UIScrollView,则该按钮将定位在该中心,请参阅这些应用程序的第一个屏幕SOT 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
{

}

Answer 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

现在,使用这些方法在你的滚动视图即scView加载在viewDidLoad方法按钮

- (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;
      ::
      ::
   }
}


文章来源: How to make UIButton vertical silder menu in iphone