Iphone Scrollview不会保留在中心指示器上
随信附上我的样本代码供参考,请放在中间位置,这就是我面临的问题。它没有停在中央指示灯上 注意:所有按钮都是动态的,来自web,但在这个示例中,我使用了一个硬编码数组。但在原始场景中,按钮的数量可能会改变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
- (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)];