UIKit框架-高级控件:2.UIScrollView的单图分页设置

来源:互联网 发布:记工时的软件 编辑:程序博客网 时间:2024/06/12 20:01

在前面, 我们了解了UIScrollView的基本属性, 也知道了它运作之后的效果, 现在让我们来看看UIScrollView的其他更高级的功能, 那就是分页设置, 下面让我们来看看如何设置分页.



1.设置全局变量:

@interface ViewController (){    UIPageControl *_pageControl;    UIScrollView *_scrollView;}@end



2.在.h文件中设置UIScrollViewDelegate:

#import <UIKit/UIKit.h>@interface ViewController : UIViewController <UIScrollViewDelegate>@end


3.添加一个UIScrollView:

#pragma mark - 添加ScrollView- (void)myScrollView{    // 1.实例化ScrollView    _scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 28, self.view.frame.size.width, self.view.frame.size.height)];    [_scrollView setBackgroundColor:[UIColor grayColor]];        // 2.设置ScrollView内容    UIImage *image = [UIImage imageNamed:@"002.jepg"];    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];    [_scrollView addSubview:imageView];        // 3.设置ScrollView属性    [_scrollView setContentSize:image.size];    [_scrollView setBounces:NO];    [_scrollView setShowsHorizontalScrollIndicator:NO];        // 4.ScrollView分页设置    [_scrollView setPagingEnabled:YES];        [self.view addSubview:_scrollView];        // 设置ScrollView为代理    [_scrollView setDelegate:self];}



4.设置ScrollView的代理方法

#pragma mark - 设置ScrollView代理方法- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{    NSInteger pageNo = scrollView.contentOffset.x / scrollView.bounds.size.width;        [_pageControl setCurrentPage:pageNo];}


5.添加pageControl

- (void)myPageControl{    // 1.添加分页控件    _pageControl = [[UIPageControl alloc]init];        // 1.1指定位置和大小    [_pageControl setBounds:CGRectMake(0, 0, 150, 50)];    [_pageControl setCenter:CGPointMake(self.view.frame.size.width / 2, self.view.frame.size.height - 50)];        // 2.设置页面属性    [_pageControl setNumberOfPages:2];    [_pageControl setCurrentPage:0];        [_pageControl setCurrentPageIndicatorTintColor:[UIColor redColor]];    [_pageControl setPageIndicatorTintColor:[UIColor greenColor]];        // 3.监听分页控制器的变化    // PS: 第三个参数是ValueChanged    [_pageControl addTarget:self action:@selector(updatePageChanged:) forControlEvents:UIControlEventValueChanged];        [self.view addSubview:_pageControl];}


6.添加pageControl的监听方法

#pragma mark 分页控制器的监听方法- (void)updatePageChanged:(UIPageControl *)pageControl{    CGFloat offsetX = pageControl.currentPage * _scrollView.bounds.size.width;        [_scrollView setContentOffset:CGPointMake(offsetX, 0) animated:YES];}


7.添加所有方法到viewDidload

- (void)viewDidLoad {    [super viewDidLoad];    [self myScrollView];    [self myPageControl];}





最后实现的效果:

  


好了, 这次我们就讲到这里, 下次我们继续~~

0 0
原创粉丝点击