UI_UIScrollView/UIpageControl

原创 2015年07月07日 22:10:33

创建UIScrollView

@property(nonatomic, retain) UIScrollView *scrollView;
@property(nonatomic, retain) UIImageView *opeImageView;
@property (nonatomic, retain)UIPageControl *pageControl;
#pragma mark - 创建滑动视图  UIScrollView
- (void)createScrollView
{
    self.scrollView = [[[UIScrollView alloc] initWithFrame:[UIScreen mainScreen].bounds] autorelease];
    self.backgroundColor = [UIColor grayColor];

    // contentSize 决定了scrollView 滑动范围的大小
    _scrollView.contentSize = CGSizeMake(6 * KScreenWidth, KScreenWidth);

    // 是否显示滚动条 默认显示
    self.scrollView.showsHorizontalScrollIndicator = YES; // 水平
    self.scrollView.showsVerticalScrollIndicator = YES;  // 竖直

    // 整页反动 默认 NO
    _scrollView.pagingEnabled = YES;

    // 回弹效果 默认 YES
    _scrollView.bounces = YES;

    // 设置 scrollView 的偏移量 默认是 (0,0)
    _scrollView.contentOffset = CGPointMake(KScreenWidth, 0);

    // 点击滚动条回到顶部
    _scrollView.scrollsToTop = YES;

    // 是否允许拖动 默认 YES
    _scrollView.scrollEnabled = YES;

    [self addSubview:_scrollView];
    [self.scrollView release];
}

创建UIPageControl

#pragma mark - 创建 UIPageControl
- (void)createPageControl
{
    self.pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(120, KScreenHeight - 100, 160, 30)];

    // 设置小点的个数
    self.pageControl.numberOfPages = 6;

    // 设置小点颜色
    self.pageControl.pageIndicatorTintColor = [UIColor redColor];

    // 改变选中小点的颜色
    self.pageControl.currentPageIndicatorTintColor = [UIColor greenColor];

    [self addSubview:self.pageControl];
    [self.pageControl release];
}

创建引导多张图片

#pragma mark - 创建引导多张图片
- (void)createLeadPageImage
{
    for (int i = 0; i < 5; i++) {

        NSString *name = [NSString stringWithFormat:@"bg_%d.jpg",i];

        UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:name]];
        imageView.frame = CGRectMake(i * KScreenWidth, 0, KScreenWidth, KScreenHeight);
        [self.scrollView addSubview:imageView];
        [imageView release];
    }
}

创建 ImageView

#pragma mark - 创建 ImageView
- (void)createOpeImageView
{
    self.opeImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg_4"]];
    self.opeImageView.frame = CGRectMake(0, 0, 375, 667);
    [self.scrollView addSubview:_opeImageView];
    [_opeImageView release];
}

实现代理

@interface RootViewController () <UIScrollViewDelegate>
- (void)viewDidLoad {
    [super viewDidLoad];

    NSLog(@"%@", self.view);


    // 设置scrollView 的代理
    self.rootView.scrollView.delegate = self;

    // 设置最大的缩放比例
    self.rootView.scrollView.maximumZoomScale = 3;

    // 设置最小的缩放比例
    self.rootView.scrollView.minimumZoomScale = 0.3;
}

代理方法

#pragma mark - scroolView 滑动的时候会触发方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
//    NSLog(@"滑动");

    // 图片带动小点移动
    NSInteger index =  self.rootView.scrollView.contentOffset.x / KScreenWidth;
    self.rootView.pageControl.currentPage = index;
    // pageControl 绑定监听事件
    [self.rootView.pageControl addTarget:self action:@selector(pageControlAction:) forControlEvents:UIControlEventValueChanged];
}
// 实现 pageControl 绑定监听事件

- (void)pageControlAction:(UIPageControl *)sender
{

    [self.rootView.scrollView setContentOffset:CGPointMake(KScreenWidth * sender.currentPage, 0) animated:YES];
}
#pragma mark - scroolView 开始拖拽
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    NSLog(@"开始拖拽了");
}

#pragma mark - scroolView 结束拖拽
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    NSLog(@"结束拖拽");
}


#pragma mark - scroolView 开始减速触发方法
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{
    NSLog(@"开始减速触发方法");
}


#pragma mark - scroolView 结束减速触发方法
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    NSLog(@"结束减速����");
}

缩放

#pragma mark - scrollView 缩放执行过程中
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
    if (self.rootView.scrollView.zoomScale < 1.0) {
        self.rootView.opeImageView.center = _rootView.center;
    }
}


#pragma mark - scroolView 指定缩放的内容
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    return self.rootView.opeImageView;
}
版权声明:本文为outlan原创文章,未经博主允许不得转载。 https://blog.csdn.net/yadong_zhao/article/details/46794973

swift UIPageControl中的坑

在用UIPageControl做引导界面的时候,发现了一个坑,不知道是不是漏洞  var pageControl: UIPageControl! pageControl.currentPage = ...
  • wei_chong_chong
  • wei_chong_chong
  • 2016-09-30 11:02:39
  • 474

UIPageControl 的宽度

如果在UIViweController直接添加 UIPageControl 则需要宽度 中间的小圆点会自动居中,一般设置屏幕宽度 UIPageControl *td = [[UIPageCon...
  • sontaze
  • sontaze
  • 2017-07-26 19:48:11
  • 302

UIPageControl向右对齐

这个功能需要自己扩展,基于中心点的话可以自己算,很简单的,思路就是 UIPageControl *pageControl = [[UIPageControl alloc] initWithFr...
  • chuming0311
  • chuming0311
  • 2015-05-19 09:12:44
  • 2464

UIPageControl-页面控件

概述可以用 UIPageControl 创建和管理页面,每个页面代表一个水平系列的点。默认当前浏览点页面对应的点为白色,可以自定义点它的外观。当用户点击一个页面控件移动到下一个或上一页,page co...
  • go_fishing
  • go_fishing
  • 2016-03-16 11:03:18
  • 390

UIPageControl与UIScrollView的联合使用

当做自己的学习笔记,如果对您有帮助,那太好啦,误导了您也请多见谅,有错误的地方请大家指正! 其实两者并没有什么联系,可以自己主动连接。 首先介绍一下 UIPageControl pageCont...
  • tzdd_zyk
  • tzdd_zyk
  • 2015-05-31 09:53:48
  • 521

UIPageControl修改原点大小,无需重写方法,一句代码搞定

其实最简单的办法是设置UIPageControl的transform,直接缩放就好了, UIPageControl*pageControl=[[UIPageControl alloc] initWi...
  • sinat_29814399
  • sinat_29814399
  • 2016-09-12 10:35:42
  • 2576

iOS 调整UIPageControl圆点大小

创建一个类,继承UIPageControl,重写setCurrentPage方法,可设置圆点大小,用这个类来初始化pageControl使用即可。 #import @interface MyPag...
  • txz_gray
  • txz_gray
  • 2016-11-18 16:26:42
  • 4575

Swift: 巧改UIPageControl的默认图片

O__O “… 设计师给的设计图总是那么的不可思议,这次的UIPageControl的小点点整成了方形其他颜色,而默认的小点点则为圆形。被稍稍恶心了一下之后,还得默默地去实现。最近在研究runtim...
  • panyong4627
  • panyong4627
  • 2017-06-22 15:37:24
  • 282

UIScrollView循环+自动切换+UIPageControl可点击

  • 2012年07月17日 19:16
  • 232KB
  • 下载

UIPageControl点击时只翻一页解决办法

UIPageControl使亮点直接跳到点击dot上   公司要求做这样的一个功能,要求点某一个白点的时候,直接跳到对应的页面,但是苹果默认只跳一页,无论你点击哪个白点,以前一直没有做过page...
  • focusjava
  • focusjava
  • 2013-04-11 18:27:51
  • 968
收藏助手
不良信息举报
您举报文章:UI_UIScrollView/UIpageControl
举报原因:
原因补充:

(最多只允许输入30个字)