2011-02-10 9 views
0

サンプルコードをここで囲んで、すぐに参照できるようにしてください。中央の場所に置いてください。これは私が問題に直面しているものです。Scrollviewが中央のインジケータに残りません

注:すべてのボタンは動的でウェブからのものですが、このサンプルではハードコードされた配列から作成しました。しかし、オリジナルのシーンでは、その数(ボタンの数)が変わることがあります。

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

ここで見つけるコードUnAligned scrollview code

答えて

0

チャゲこの1

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

でウルのコードでは、それは改ページは次のように有効になっているときに何を達成したいことはできませんウルの問題

+0

問題を解決してくれてありがとうございますが、私は一度に3つのボタンが必要で、1つのショーは中央に残り、一度に3回表示すると私のボタンは中央に残りません。私はこのリンクのために私の問題を解決しようとしましたhttp://blog.sallarp.com/iphone-ipad-appstore-like-uiscrollview-with-paging-and-preview/ – user366584

0

を解決しますページネーションが有効になっている場合、スクロールビューはその幅にスクロールします。このためにできることは最大値です。

- (ボイド)scrollViewDidEndDecelerating:(UIScrollViewの*)scrollView

{

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)]; 

}

と.....

tagScrollView.pagingEnabled = NO;

関連する問題