当前位置:编程学习 > wap >>

ios 翻页例子源码

demo功能:ios 翻页例子源码。iphone 6.1测试通过。

demo说明:AppDelegate.m中又主要的页面控制代码。MyViewController.m是翻动的页面。

 

demo主要代码:AppDelegate.m

 

 (void)loadScrollViewWithPage:(int)page {  
    if (page < 0) return;  
    if (page >= kNumberOfPages) return;  
  
    // replace the placeholder if necessary   
    MyViewController *controller = [viewControllers objectAtIndex:page];  
    if ((NSNull *)controller == [NSNull null]) {  
        controller = [[MyViewController alloc] initWithPageNumber:page];  
        [viewControllers replaceObjectAtIndex:page withObject:controller];  
        [controller release];  
    }  
  
    // add the controller's view to the scroll view   
    if (nil == controller.view.superview) {  
        CGRect frame = scrollView.frame;  
        frame.origin.x = frame.size.width * page;  
        frame.origin.y = 0;  
        controller.view.frame = frame;  
        [scrollView addSubview:controller.view];  
    }  
}  
  
- (void)scrollViewDidScroll:(UIScrollView *)sender {  
    // We don't want a "feedback loop" between the UIPageControl and the scroll delegate in   
    // which a scroll event generated from the user hitting the page control triggers updates from   
    // the delegate method. We use a boolean to disable the delegate logic when the page control is used.   
    if (pageControlUsed) {  
        // do nothing - the scroll was initiated from the page control, not the user dragging   
        return;  
    }  
    // Switch the indicator when more than 50% of the previous/next page is visible   
    CGFloat pageWidth = scrollView.frame.size.width;  
    int page = floor((scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;  
    pageControl.currentPage = page;  
  
    // load the visible page and the page on either side of it (to avoid flashes when the user starts scrolling)   
    [self loadScrollViewWithPage:page - 1];  
    [self loadScrollViewWithPage:page];  
    [self loadScrollViewWithPage:page + 1];  
  
    // A possible optimization would be to unload the views+controllers which are no longer visible   
}  

 

补充:移动开发 , IOS ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,