2011-02-10 5 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

CHAGE이 하나

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

와 UR 코드는 페이지 매김 같이 사용할 때 당신은 무엇을 달성하고자하는 것은 가능하지 않다 UR 문제

+0

코드를 사용해 주셔서 감사합니다.하지만 문제가 해결되었지만 한 번에 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;

관련 문제