scrollView的简单实现效果(1)

scrollView的简单效果图实现

关于scrollView,就是可以上下滑动和左右滑动。从最基本和最实用的出发,比如相册浏览,就是用scrollView实现的。以下是scrollView的基本创建和用法。

首先,创建工程之后,在viewController中的viewDidLoad中初始化scrollView,在此之前,新创建了一个PageScrollView类,在PageScrollView.m中书写了一段代码如下:

 1 - (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
 2     
 3 //在高度范围内,如果super hitTest 返回是nil,则返回 self  如果不是,就返回null
 4     
 5     if (point.y > 0 && point.y < self.bounds.size.height) {
 6         
 7         UIView *superRet = [super hitTest:point withEvent:event];
 8         
 9         if (superRet) {
10             
11             return superRet;
12         }
13         return self;
14     }
15     
16     return nil;
17 }

上述代码中提到了hitTest:这是时间点击传递事件。(可以去找一下)。

下面我们开始创建scrollView。应注意以下几点:1.首先初始化的时候找准自己需要的位置;2.务必要设置scrollView的内容大小,不然不会有效果,并且,内容大小(左右滑动时,宽度不能小于图片的总宽度)3.属性中有滚动条是否显示、是否开启反弹效果、翻页效果等。如下代码:(注意:将创建的类PageScrollView.h导入)

 1     //初始化scrollView
 2     PageScrollView *scrollView = [[PageScrollView alloc] initWithFrame:CGRectMake((width - 200)/2.f, 100, 200, 300)];
 3 
 4     //设置内容大小
 5     scrollView.contentSize = CGSizeMake(200 * imageArrary.count, 300);
 6     scrollView.pagingEnabled = YES;
 7     
 8     //关闭边界裁剪
 9     scrollView.clipsToBounds = NO;
10     //隐藏水平滚动条(默认开启)
11     scrollView.showsHorizontalScrollIndicator = NO/YES;
12     scrollView.showsVerticalScrollIndicator = NO/YES;
13     
14     //反弹效果(默认开启)
15 //    scrollView.bounces = NO;
16     scrollView.bounces = YES;

效果图如下:可以看到水平滚动条和反弹效果。(数值滚动条没显示,是因为不能上下滑动)

 

 我们看到的效果图就是如上所示。具体实现的代码如下:

 1  //添加子视图
 2     for (int i = 0; i < imageArrary.count; i ++) {
 3 
 4       //创建view并使其显示不同颜色,颜色是随机的
 5         UIView *view = [[UIImageView alloc] initWithFrame:CGRectMake(200 * i, 0, 200, 300)];
 6 
 7         //添加随机颜色,(具体设置随机颜色的方法读者可以去查阅,或者百度)
 8         view.backgroundColor = [UIColor colorWithRed:arc4random()%255/255.0 green:arc4random()%255/255.0  blue:arc4random()%255/255.0  alpha:1];
 9 
10         [scrollView addSubview:view];
11 
12 }

 如果有错误,欢迎指正。如有转载,请标明转载出处

原文地址:https://www.cnblogs.com/david-han/p/4820290.html