0

我有一个 UIbuttons 滚动视图的滚动视图,如下所示:

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

           }


}

这是图像中的详细信息,在第一张图像中,蓝色箭头表示部分隐藏的左按钮的先前状态,并且一旦单击它就会移动到滚动视图的中间:

在此处输入图像描述

非常感谢

4

1 回答 1

1

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

[self.competicionSlide scrollRectToVisible:boton.frame];

祝你好运 !

于 2012-05-21T16:35:00.023 回答