• ScrollView各属性,及代理方法汇总


      本文希望对那些UI初级学者,提供些帮助.

       笔者感言:学习scrollView,可能再以后的工作中用的不是太多,但它的两个子类,相信用的比例绝对很大,UITableVIew和UICollectionView。大家都知道,OC是一门面向对象,基于C语言封装而出的一门高级语言。面向对象的三大特性:封装、继承、多态。说到继承,子类不仅仅能继承父类的属性和方法,其代理也能继承,所以ScrollView的代理方法,及各属性的设置,在UITableView及UICollectionView中也可以使用,看博客的人,可以去尝试一下。

         学习任何一个控件,你都可以点进这个控件去看它的UIKIT的中的内容,这样,它所有的属性,方法,及代理方法,你都可以找到。这种方式可以帮你省去许多时间,你也不需要去死记一些东西,只需要点进去找一下就行。

      闲话少说,让我们看一下scrollView的用法。

    //
    //  ViewController.h
    //  scrollView01
    //
    //  Created by Mac on 15-7-14.
    //  Copyright (c) 2015年 Mac. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    
    //在.h文件中,签订UIScrollView的代理方法
    @interface ViewController : UIViewController<UIScrollViewDelegate>
    
    
    @end
    
    //
    //  ViewController.m
    //  scrollView01
    //
    //  Created by Mac on 15-7-14.
    //  Copyright (c) 2015年 Mac. All rights reserved.
    //
    
    #import "ViewController.h"
    //scrollview的用法
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    //创建scrollView
        UIScrollView * scro = [[UIScrollView alloc]initWithFrame:CGRectMake(100, 100, 200, 300)];
        [self.view addSubview:scro];
        scro.delegate = self;
        scro.backgroundColor = [UIColor orangeColor];
        //设置内容大小
        scro.contentSize = CGSizeMake(400, 400);
    //用来理解内容大小和frame的区别
        UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 390, 390)];
        UIImage *image = [UIImage imageNamed:@"20120618101.jpg"];
        imageView.image = image;
        NSLog(@"%@",imageView.image);
        [scro addSubview:imageView];
        //是否显示水平和垂直滚动条
      /*  scro.showsHorizontalScrollIndicator = NO;
        scro.showsVerticalScrollIndicator = NO;
        //是否有弹簧效果
        scro.bounces = NO;  */
        //增加额外的滚动区域
        scro.contentInset = UIEdgeInsetsMake(30, 30, 30, 30);
        //设置滚动条样式
        scro.indicatorStyle = UIScrollViewIndicatorStyleBlack;
        //设置偏移量
        scro.contentOffset = CGPointMake(-20, -20);
        //是否分页滑动
        scro.pagingEnabled = YES;
        //是否开启滚动
    //    scro.scrollEnabled = NO;
    }
    #define mark代理方法
    //滑动时调用
    - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    //    NSLog(@"%@",scrollView);
    }
    
    //开始拖动时调用到松手
    - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
        NSLog(@"sssss%@",scrollView);
    }
    
    //结束拖动,手指离开屏幕,decelerate(是否是减速状态)
    -(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
        
    //    decelerate == YES?NSLog(@"减速"):NSLog(@"停止");
    }
    //开始减速时调用
    - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{
    //    NSLog(@"开始减速了");
    }
    //减速停止时调用
    - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    //    NSLog(@"减速停止");
    }
    
    //拖动,手指离开屏幕
    - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{
        //获取坐标,只能使用指针
        float tagetx = targetContentOffset->x;
    //    NSLog(@"%.2f",tagetx);
    }
    

     里面可能有某些东西遗漏,或者解释不够准确的地方,欢迎指出,必做修改。

  • 相关阅读:
    获取ip
    PHP大牛笔记收藏
    WordPress伪静态规则设置
    PHP 中 include 和 require 的区别详解
    Wordpress学习链接整理
    手机访问自动跳转
    微信web开发工具
    接入支付宝出现交易订单处理失败,请稍后再试(ALI64)的错误【转】
    HTTPS科普扫盲帖【转】
    php 好用的函数
  • 原文地址:https://www.cnblogs.com/zxh-iOS/p/4774895.html
Copyright © 2020-2023  润新知