UIScrollView------2常见代理使用

1.常见代理方法

UIScrollView常见代理方法,放大缩小实例讲解实现。

 1 #import "ViewController.h"
 2
 3 @interface ViewController ()<UIScrollViewDelegate>
 4 @property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
 5 @property (weak, nonatomic) IBOutlet UIImageView *image;
 6
 7 @end
 8
 9 @implementation ViewController
10
11 - (void)viewDidLoad {
12     [super viewDidLoad];
13     _scrollView.delegate = self;
14     _scrollView.contentSize = CGSizeMake(1440, 900);
15     //设置放缩的比例
16     _scrollView.minimumZoomScale = 0.5;
17     _scrollView.maximumZoomScale = 2;
18 }
19
20 #pragma mark UIScrollViewDelegate
21
22 -(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
23     NSLog(@"用户开始拖拽时调用");
24 }
25
26 -(void)scrollViewDidScroll:(UIScrollView *)scrollView{
27     NSLog(@"具体滚动到某个位置时调用");
28     NSLog(@"%@",NSStringFromCGPoint(_scrollView.contentOffset));
29 }
30
31 -(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
32     NSLog(@"停止拖拽时调用");
33 }
34
35 -(void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view{
36     NSLog(@"开始拖动");
37 }
38
39 -(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
40     return _image;
41 }
42
43 -(void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale{
44     NSLog(@"正在拖动");
45 }
46
47 @end

2综合运用,广告Banner

(1)首先加一个UIScrollView,设置320*200,再拖入一个UIPageControl在UIScrollView的上方,并设置当前颜色,和点的个数

代码,1.设置banner的contentSize确定滚动范围 2.将3张图片依次添加到banner中,只需处理x的坐标 3.banner的分页属性设置为YES

 1 #import "ViewController.h"
 2
 3 @interface ViewController ()
 4 //滚动栏
 5 @property (weak, nonatomic) IBOutlet UIScrollView *banner;
 6 //分页
 7 @property (weak, nonatomic) IBOutlet UIPageControl *pageContrl;
 8
 9 @end
10
11 @implementation ViewController
12
13 - (void)viewDidLoad {
14     [super viewDidLoad];
15     //设置滚动范围
16     _banner.contentSize = CGSizeMake(320*3, 200);
17     //分页
18     _banner.pagingEnabled = YES;
19     //隐藏底部指示器
20     _banner.showsHorizontalScrollIndicator = NO;
21     //初始化图片 并添加到banner中
22     for(int i=0;i<3;i++){
23         UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"image_%d.jpg",i+1]]];
24         imageView.frame = CGRectMake(i*320, 0, 320, 200);
25         [_banner addSubview:imageView];
26     }
27 }

效果

此时UIPageControl的点并不会随着图片的拖动变化而变化,要使U点跟着变化

1.实现UIScrollView的-(void)scrollViewDidScroll:(UIScrollView *)scrollView方法

2.在步骤1方法中通过banner的contentOffset获取移动的坐标,知道移动到了那里

3.通过(contentoffset.x + scrollView/2)/scrollView宽度算出页面

 1 #import "ViewController.h"
 2
 3 @interface ViewController ()<UIScrollViewDelegate>
 4 //滚动栏
 5 @property (weak, nonatomic) IBOutlet UIScrollView *banner;
 6 //分页
 7 @property (weak, nonatomic) IBOutlet UIPageControl *pageContrl;
 8
 9 @end
10
11 @implementation ViewController
12
13 - (void)viewDidLoad {
14     [super viewDidLoad];
15     //设置滚动范围
16     _banner.contentSize = CGSizeMake(320*3, 200);
17     //分页
18     _banner.pagingEnabled = YES;
19     //隐藏底部指示器
20     _banner.showsHorizontalScrollIndicator = NO;
21     //初始化图片 并添加到banner中
22     for(int i=0;i<3;i++){
23         UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"image_%d.jpg",i+1]]];
24         imageView.frame = CGRectMake(i*320, 0, 320, 200);
25         [_banner addSubview:imageView];
26     }
27     //设置代理
28     _banner.delegate = self;
29 }
30 #pragma makr UIScrollViewDelegate
31 -(void)scrollViewDidScroll:(UIScrollView *)scrollView{
32     NSLog(@"正在滚动");
33     //计算页面
34     //页码(contentoffset.x + scrollView宽度/2)/scrollView宽度,这里利用UIScrollView分页机制
35     CGFloat bannerW = _banner.frame.size.width;
36     CGFloat x = _banner.contentOffset.x;
37     //页码
38     int page = (x + bannerW/2)/bannerW;
39     _pageContrl.currentPage = page;
40 }
41
42 @end
时间: 2024-10-12 09:18:07

UIScrollView------2常见代理使用的相关文章

UI第七讲.UIScrollView , UIScrollview的常用代理方法, UIPageControl的使用, UIPageControl与UIScrollView的结合使用

一.UIScrollView的常用属性 UIScrollView是可以滚动的view,UIView本身不能滚动,子类UIScrollview拓展了滚动方面的功能. UIScrollView是所有滚动视图的基类.以后的UITableView,UITextView等视图都是继承于该类. 使用场景:显示不下(单张?大图);内容太多(图?文混排);滚动头条(图片);相册等 UIScrollView(滚动视图)的样式: 常用属性: 1.UIScrollView的核心功能 UIScrollview主要专长于

学习笔记之-------UIScrollView 基本用法 代理使用

//contentSize.contentInset和contentOffset 是 scrollView三个基本的属性. // 滚动 self.ScrollView.contentSize =self.imageview.frame.size; //偏移X =0 Y =-74 向下偏移 self.ScrollView.contentOffset =CGPointMake(0,-74); // 边距 距离顶部74 左 0 下40 右0 self.ScrollView.contentInset =

UIScrollView基本属性/代理方法

-(void)viewDidload {[super viewDidLoad]; scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; scrollView.backgroundColor = [UIColor redColor]; // 是否支持滑动最顶端 scrollView.scrollsToTop = NO; scrollView.delegate = self; // 设置内容大小 s

UIScrollView的常见属性

1.CGPoint contentOffset:用来表示UIScrollView滚动的位置 2.CGSize contentSize:用来表示UIScrollView内容的尺寸,滚动范围 3.UIEdgeInsets contentInset:能够在UIScrollView的4周增加额外的滚动区域 #import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UI

UIScrollView无法滚动的解决办法及UIScrollView的代理(delegate)

1•如果UIScrollView无法滚动,可能是以下原因: Ø没有设置contentSize ØscrollEnabled = NO Ø没有接收到触摸事件:userInteractionEnabled = NO Ø没有取消autolayout功能(要想scrollView滚动,必须取消autolayout) 2. •很多时候,我们想在UIScrollView正在滚动 或 滚动到某个位置 或者 停止滚动 时做一些特定的操作 • •要想完成上述功能,前提条件就是能够监听到UIScrollView的整

UIScrollView常见属性

什么是UIScrollView •设备的屏幕大小是极其有限的,因此直接展示在用户眼前的内容也相当有限 • •当展示的内容较多,超出一个屏幕时,用户可通过滚动手势来查看屏幕以外的内容 • •普通的UIView不具备滚动功能,不能显示过多的内容 • •UIScrollView是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容 •举例:手机上的“设置”.其他示例程序 •如果UIScrollView无法滚动,可能是以下原因: Ø没有设置contentSize Øscroll

UIScrollView的代理(delegate)

很多时候,我们想在UIScrollView正在滚动 或 滚动到某个位置 或者 停止滚动 时做一些特定的操作 要想完成上述功能,前提条件就是能够监听到UIScrollView的整个滚动过程 当UIScrollView发生一系列的滚动操作时, 会自动通知它的代理(delegate)对象,给它的代理发送相应的消息,让代理得知它的滚动情况 也就是说,要想监听UIScrollView的滚动过程,就必须先给UIScrollView设置一个代理对象,然后通过代理得知UIScrollView的滚动过程

iOS UI基础-7.0 UIScrollView

概述 移动设备的屏幕大小是极其有限的,因此直接展示在用户眼前的内容也相当有限.当展示的内容较多,超出一个屏幕时,用户可通过滚动手势来查看屏幕以外的内容,普通的UIView不具备滚动功能,不能显示过多的内容.UIScrollView是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容 UIScrollView的常见属性 UIScrollView的常用代理方法 UIScrollView的缩放 UIScrollView使用 基本使用 UIScrollView的用法很简单,将

UIScrollView —— 基本使用(一)

1 是什么: UIScrollView是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容 2 怎么用: UIScrollView的基本使用 1> UIScrollView的用法很简单 1.1 将需要展示的内容添加到UIScrollView中 1.2 设置UIScrollView的contentSize属性,告诉UIScrollView所有内容的尺寸,也就是告诉它滚动的范围(能滚多远,滚到哪里是尽头) 1.3 UIScrollView显示内容的小细节 超出UIScro