2017-02-06 5 views
-3
if(self){ 
     UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0,0, self.view.frame.size.width, self.view.frame.size.height)]; 
     scrollView.contentSize = CGSizeMake(320, 465); 

     [scrollView setScrollEnabled:YES]; 
     [scrollView setPagingEnabled:YES]; 
     [scrollView setAlwaysBounceVertical:NO]; 
     [self.uiSubView addSubview:scrollView]; 

     NSMutableArray *arrImage = [NSMutableArray arrayWithObjects:@"a.jpeg", @"cat.jpg", @"s.jpeg",@"ss.jpeg", nil]; 

     for (int i = 0; i < [arrImage count]; i++) 
     { 
      CGFloat xOrigin = i * scrollView.frame.size.width; 


      UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(xOrigin, 0, scrollView.frame.size.width, scrollView.frame.size.height)]; 
      [imageView setImage:[UIImage imageNamed:[arrImage objectAtIndex:i]]]; 
      [imageView setContentMode: UIViewContentModeScaleAspectFit]; 

      [scrollView addSubview:imageView]; 


     } 

     [scrollView setContentSize:CGSizeMake(scrollView.frame.size.width * [arrImage count], scrollView.frame.size.height)]; 


    } 


[NSTimer scheduledTimerWithTimeInterval:2.0 
            target:self 
            selector:@selector(scrollPages) 
            userInfo:nil 
            repeats:NO]; 




- (void)scrollPages 
{ 
//I want a method here, the timer works for the first image later it will not scroll, so tel me how to introduce delay between images. 

} 

답변

1

또한 페이징을 가능하게 viewWillAppear:

_slideShowTimer = [NSTimer scheduledTimerWithTimeInterval:K_DEFINE_YOUR_TIME 
            target:self 
           selector:@selector(scrollPages) 
           userInfo:Nil 
           repeats:YES]; 


-(void)scrollPages { 

    if (currentPage>=self.pageControl.numberOfPages) { 
     currentPage=0; 
     [self.scrollView setContentOffset:CGPointMake(0, 0) animated:YES]; 
    } 
    [self scrollToPage:currentPage]; 
    currentPage++; 
} 

-(void)scrollToPage:(NSInteger)aPage { 

    float myPageWidth = [self.scrollView frame].size.width; 
    [self.scrollView setContentOffset:CGPointMake(aPage*myPageWidth,0) animated:YES]; 
} 

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


- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { 
    pageControlBeingUsed = NO; 
    pageNumber1 = pageNumber; 

} 

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { 

    pageControlBeingUsed = NO; 
    pageNumber2 = pageNumber; 

    if(pageNumber == 4 && pageNumber2 == pageNumber1){ 
    //Do any action you want to do from last page or you add by your condition. 

    } 
} 
+0

사람들의 투표가 게시물에서 정당하다고 생각하는지 여부에 대한 의견을 말하지 마십시오. 대부분의 독자는 관심이 없습니다. 일단 50 점을 받으면 그 질문에 대해 논평 할 수 있습니다. 그렇지만 그런 의견조차도 별다른 차이가 없기 때문에 그러한 논평에 대해 추천 할 것입니다. – halfer

+2

예. 사실 나는 stackoverflow에 새로운 오전, 나는 또한 아침에 같은 활동 희생자를 얻을, 나는 정확한 대답을했지만 누군가가 그것을 내려 ... 당신의 제안 주셔서 감사. 나는 미래에 그러한 논평을 피할 것이다. – Bapu

0
-(void)scrollPages 
{ 
    int currentPage = (int)self.scrollView.contentOffset.x/self.scrollView.bounds.size.width; 
    int totalPages = (int)self.scrollView.contentSize.width/self.scrollView.bounds.size.width; 
    if(currentPage < totalPages) 
    { 
     currentPage++; 
    } 
    else 
    { 
     currentPage = 1; 
    } 
    [self.scrollView setContentOffset:CGPointMake((currentPage-1)*self.scrollView.bounds.size.width,0)]; 
} 

타이머 호출을 추가하십시오.