2012-05-21 14 views
0

我UIbuttons的滚动型的滚动视图建立这样的:滚动的UIScrollView的中心单击的UIButton加入编程EDITED

-(void) loadCompeticionSlide{ 

    float x=0; 

    for (int i = 0; i < [categoriasArray count]; i++) { 

     NSDictionary *categoria = [categoriasArray objectAtIndex:i]; 

     UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 

     NSString *titleString = [categoria valueForKey:@"competicion"]; // get button title 

     btn.titleLabel.font = [UIFont boldSystemFontOfSize:11.0]; 

     CGSize fontSize = [titleString sizeWithFont:[UIFont systemFontOfSize:11.0]]; 

     CGRect currentFrame = btn.frame; 

     CGRect buttonFrame = CGRectMake(x, currentFrame.origin.y, fontSize.width + 22.0, fontSize.height + 12.0); 

     [btn setFrame:buttonFrame]; 

     x = x + fontSize.width + 35.0; 

     [btn setTitle:titleString forState: UIControlStateNormal]; 

     int idc = [[categoria valueForKey:@"idc"]intValue]; 

     [btn addTarget:self action:@selector(cambiarCompeticion:) forControlEvents:UIControlEventTouchUpInside]; 

     [btn setTag:idc]; 

     [self.competicionSlide addSubview:btn]; 

    } 

    //[competicionSlide setBackgroundColor:[UIColor whiteColor]]; 
    competicionSlide.contentSize = CGSizeMake(350,35); 
    competicionSlide.layer.cornerRadius = 11; 
    competicionSlide.layer.masksToBounds = YES; 

} 

然后,在加选择cambiarCompeticion:,我得到的按钮点击,在这里我需要使用scrollRectToVisible:让点击的UIButton滚动到包含它的UIScrollview的中心,但我不知道该怎么做。

这是通过按钮选择在那里我明白scrollRectToVisible触发选择方法:一直被称为:

-(void)cambiarCompeticion:(UIButton*)boton{ 

    int idCompeticion; 

    idCompeticion = boton.tag; 

    switch (idCompeticion) { 
     case 1: 
      [self tablaLigaRegular]; 
      break; 

     case 5: 
      [self tablaCoparey]; 
      break; 

     case 10: 
      [self tablaPlayOff]; 
      break;  

      } 


} 

这里是图像中的细节,在第一图像蓝色箭头指示部分隐藏的左侧的前一个状态按钮和移动做滚动视图的中间一旦点击:

enter image description here

千恩万谢

回答

1

您的boton参数(来自cambiarCompeticion:选择器)具有您需要的一切。只是这样调用(假设“competicionSlide”是一个UIScrollView):

[self.competicionSlide scrollRectToVisible:boton.frame]; 

祝你好运!

+0

谢谢Darkbyte,我试过了,但是滚动不动。任何建议? – theomen

+0

我重新读了你的问题,我不太清楚你需要什么。几个问题: 您的所有按钮都可见(无需滚动查看全部)? 当你说你想让UIButton“滚动到ScrollView的中心”时,你究竟意味着什么?你想将按钮设置为另一个位置或滚动整个滚动视图? – DarkByte

+0

不,它们不是全部可见的。我的意思是,一旦用户点击实例,一个按钮位于可见滚动视图的右侧,滚动视图将滚动并在滚动视图中间的左侧按钮。如果按钮位于左侧,则也是如此。我会在一会儿添加一个解释图像。谢谢! – theomen