Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone Scrollview不会保留在中心指示器上_Iphone_Objective C_Iphone Sdk 3.0_Ios4 - Fatal编程技术网

Iphone Scrollview不会保留在中心指示器上

Iphone Scrollview不会保留在中心指示器上,iphone,objective-c,iphone-sdk-3.0,ios4,Iphone,Objective C,Iphone Sdk 3.0,Ios4,随信附上我的样本代码供参考,请放在中间位置,这就是我面临的问题。它没有停在中央指示灯上 注意:所有按钮都是动态的,来自web,但在这个示例中,我使用了一个硬编码数组。但在原始场景中,按钮的数量可能会改变 - (void)viewDidLoad { arr = [[NSMutableArray alloc] initWithObjects:@"Test1",@"Test2",@"Test3",@"Test4",@"Test5",nil]; UIImageView *i

随信附上我的样本代码供参考,请放在中间位置,这就是我面临的问题。它没有停在中央指示灯上

注意:所有按钮都是动态的,来自web,但在这个示例中,我使用了一个硬编码数组。但在原始场景中,按钮的数量可能会改变

    - (void)viewDidLoad {

    arr = [[NSMutableArray alloc] initWithObjects:@"Test1",@"Test2",@"Test3",@"Test4",@"Test5",nil];


    UIImageView *img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg_content_slide.png"]];
    img.frame = CGRectMake(0, 20, 320, 85);
    img.contentMode = UIViewContentModeScaleAspectFill;


    [self.view addSubview:img];

    [self setScrollButtons];

    [super viewDidLoad];

}

- (void) setScrollButtons
{
    UIScrollView *tagScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 30, 320, 44)];
    tagScrollView.backgroundColor = [UIColor clearColor];
    [tagScrollView setShowsHorizontalScrollIndicator:NO];
    [tagScrollView setShowsVerticalScrollIndicator:NO];
    [tagScrollView setCanCancelContentTouches:NO];
    tagScrollView.indicatorStyle = UIScrollViewIndicatorStyleBlack;
    tagScrollView.clipsToBounds = YES;
    tagScrollView.scrollEnabled = YES;
    tagScrollView.pagingEnabled = YES;
    tagScrollView.bounces = YES;
    tagScrollView.tag = 2;

    int xaxis = 0;

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

        UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        btn.frame = CGRectMake(xaxis, 0, 160, 44);
        //btn.titleLabel.text = [NSString stringWithFormat:@"%@",[arr objectAtIndex:i]];
        [btn setTitle:[arr objectAtIndex:i] forState:UIControlStateNormal];
        NSLog(@"%@", btn.titleLabel.text);

        xaxis += btn.frame.size.width + 20;

        [tagScrollView addSubview:btn];
    }


    [tagScrollView setContentSize:CGSizeMake([arr count] * 200, tagScrollView.frame.size.height)];

    [self.view addSubview:tagScrollView];
}

在此处查找代码

用此代码更改您的代码

int xaxis = 0;

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

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    btn.frame = CGRectMake(320*xaxis+80, 0, 160, 44);
    //btn.titleLabel.text = [NSString stringWithFormat:@"%@",[arr objectAtIndex:i]];
    [btn setTitle:[arr objectAtIndex:i] forState:UIControlStateNormal];
    //[btn setBackgroundImage:[UIImage imageNamed:@"remove_fav.png"] forState:UIControlStateNormal];
    NSLog(@"%@", btn.titleLabel.text);

    xaxis ++;//= btn.frame.size.width + 40;

    [tagScrollView addSubview:btn];
}


[tagScrollView setContentSize:CGSizeMake([arr count] * 320, tagScrollView.frame.size.height)];

[self.view addSubview:tagScrollView];

这将解决您的问题

当启用分页时,您想要实现的目标是不可能的,因为当启用分页时,滚动视图将滚动到其宽度。因此,对于此,您可以做的是添加此方法

-voidScrollViewDiEndDecelling:UIScrollView*scrollView

{

}

对于这种配置,它工作正常。。。。。。。 {

}


tagScrollView.PaginEnabled=否

谢谢你的代码,虽然它解决了问题,但我希望一次3个按钮和一个显示保持在中心,我的按钮不保持在中心,当我过去一次显示三次。我试图解决这个链接的问题
CGPoint offset = scrollView.contentOffset;
int temp = floor(offset.x/160);
[tagScrollView scrollRectToVisible:CGRectMake(temp*160, 0, 320, 44) animated:YES];
int xaxis = 0;

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

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    btn.frame = CGRectMake(160*xaxis+85, 0, 150, 44);
    [btn setTitle:[arr objectAtIndex:i] forState:UIControlStateNormal];
    NSLog(@"%@", btn.titleLabel.text);
    xaxis ++;//= btn.frame.size.width + 40;
    [tagScrollView addSubview:btn];
}
   [tagScrollView setContentSize:CGSizeMake(160*xaxis+250, tagScrollView.frame.size.height)];