2012-05-06 2 views

답변

8

일반적인 접근 방식은 페이징이 활성화 된 이미지 중 하나의 크기 인 UIScrollView입니다.

는 파단으로 이미지를 추가하고이 같은 내용의 크기를 설정 ...

NSArray *images; 
CGSize imageSize; 

self.scrollView.frame = CGRectMake(10,10,imageSize.width,imageSize.height); 
self.scrollView.contentSize = CGSizeMake(imageSize.width * images.count, imageSize.height); 
self.scrollView.pagingEnabled = YES; 

CGFloat xPos = 0.0; 

for (UIImage *image in images) { 
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; 
    imageView.frame = CGRectMake(xPos, 0.0, imageSize.width, imageSize.width); 
    [self.scrollView addSubview:imageView]; 
    xPos += imageSize.width; 
    // assuming ARC, otherwise release imageView 
} 

당신은 또한 당신이 원하는 효과의 세부 사항에 따라 등, 지표를 스크롤 바운스를 해제 할 수 있습니다. 있는 UIScrollView와 UIPageControl을 사용하여

+0

의 함께 IBOutlet을 만들 수있는 UIScrollView와 UIPageControl들이 중복되지 않는지 확인 드롭 작동하지 않으면 scrollview가 비어있게됩니다. 어쩌면 개체, 이벤트 작동 방법을 이해하는 나의 부족 때문에 뭔가를 놓치고있다 ... 덕분에 – Sweet

+0

이 대답은 내 문제를 해결 링크를 운전 : http://www.iosdevnotes.com/2011/03/uiscrollview- 페이징 /. 고마워 Danh, 나는 그것을 투표하고 답변으로 표시했다. – Sweet

1

당신은 단순히 슬쩍 방향을 얻을 수는 왼쪽이나 방법 detectSwipe가있는 UIImage 배열로 재생 뒤로 당신의 기대를 처리하고 대한 선언이

swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(detectSwipe:)]; 
[swipeGesture setNumberOfTouchesRequired:1]; 
[swipeGesture setDirection:UISwipeGestureRecognizerDirectionDown | UISwipeGestureRecognizerDirectionUp]; 
[appView addGestureRecognizer:swipeGesture]; 

같은 권리와 UISwipeGestureRecognizer된다. 또한 확인할 수 있습니다 Apple's SimpleGestureRecognizers Demo

희망이 당신을 도울 것입니다!

2

는, 드래그 N, 내가 제대로 귀하의 제안에 따라하고 있다면 확실하지, 그것을 시도 않았다 both.Set

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // 1 
imageArray = [NSArray arrayWithObjects: 
        [UIImage imageNamed:@"image2.jpg"], 
        [UIImage imageNamed:@"man-actor-Ashton-Kutcher-Wallpaper.jpg"], 
        [UIImage imageNamed:@"image1.jpg"], 
        [UIImage imageNamed:@"man-curl.jpg"], 
        [UIImage imageNamed:@"man-in-suit.jpg"], 
        nil]; 


    for (int i = 0; i < imageArray.count; i++) { 
    CGRect frame; 
    frame.origin.x = self.scrollView.frame.size.width * i; 
    frame.origin.y = 0; 
    frame.size = self.scrollView.frame.size; 

    UIImageView *subview = [[UIImageView alloc] initWithFrame:frame]; 
    subview.image = [imageArray objectAtIndex:i]; 
    subview.contentMode = UIViewContentModeScaleAspectFit; 
    [self.scrollView addSubview:subview]; 
    } 

    self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * imageArray.count, self.scrollView.frame.size.height); 
    pageControl.numberOfPages = imageArray.count; 
} 

- (void)scrollViewDidScroll:(UIScrollView *)sender { 
    // Update the page when more than 50% of the previous/next page is visible 
    CGFloat pageWidth = self.scrollView.frame.size.width; 
    int page = floor((self.scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1; 
    self.pageControl.currentPage = page; 
} 
관련 문제