全球彩票平台_全球彩票注册平台|官网下载地址

热门关键词: 全球彩票平台,全球彩票注册平台,全球彩官网下载地址

全球彩票注册平台UIScrollView属性及其代理方法,

1、UIScrollView是滚动的view,UIView本身不能滚动,子类UIScrollview拓展了滚动方面的功能。2、UIScrollView是所有滚动视图的基类。以后的UITableView,UITextView等视图都是继承于该类。使用场景:显示不下;内容太多;滚动头条;相册等

什么是UIScrollView?

  • 移动设备的屏幕大小是极其有限的,当展示的内容较多的时候,超出一个屏幕时,用户可以通过滚动手势来查看屏幕以外的内容
  • UIScrollview是一个能够滚动的视图控件,可以用来展示大量的内容.

demo:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    _scrV = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];


    _scrV.contentOffset = CGPointMake(0, 0.0);
    _scrV.pagingEnabled = NO;
    _scrV.showsHorizontalScrollIndicator = NO;
    _scrV.showsVerticalScrollIndicator=YES;
    _scrV.delegate = self;
    [self.view addSubview:_scrV];


    UIImage *img = [UIImage imageNamed:@"2.png"];
    CGFloat imgH = img.size.height;
    CGFloat imgW = img.size.width;
    UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(20, 20, imgW, imgH) ];
    imgView.image = img;
    _scrV.contentSize = CGSizeMake(imgW, imgH);
    [_scrV addSubview:imgView];
}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}


@end

注意点:

  • 上面的demo里的 2.png 需要一个比较大的图片以方便演示
  • scrollview控件如果需要滚动,需要设置contentSize。

UIScrollView使用步骤

  1. 创建UIScrollView
  2. 给UIScrollView添加子控件
  3. 设置UIScrollView的滚动范围self.scrollView.contenSize = CGSizeMake(300,300);
  4. 默认情况下只要可以滚动,就有弹簧效果,bounces属性设置是否有回弹效果
  5. 设置滚动条的样式和控制滚动条的显示

前言:非常基础的学习笔记,挺久之前(大概两年前吧)刚开始学iOS时记录的,知识点是全的,拿出来回顾一下。

instancetype和id

  • instancetype比id多一个好处:编译器会检测instancetype的真实类型,会提示警告,防止程序奔溃。

1、UIScrollview主要专长于两个方面:
 a、滚动:contentSize大于frame.size的时候,能够滚动。 b、 缩放:自带缩放,可以指定缩放倍数。

UIScrollView的基本使用

  • 将需要展示的内容添加到UIScrollview中
  • 设置UIScrollview的contentSize属性,告诉UIScrollview所内容的尺寸----就是滚动的范围
  • UIScrollview显示内容的小细节
  • 超出UIScrollview边框的内容会被自动隐藏
  • 用户可以用手势拖动来查看超出边框并被隐藏的内容

UIScrollView 常用属性

全球彩票注册平台 1

给Xcode中给所有新创建的加上类前缀,在Class Prefix中加入类前缀

全球彩票注册平台 2

屏幕快照 2016-03-07 上午9.52.12.png

2、UIScrollView滚动相关属性contentSize
 //定义内容区域大小,决定是否能够滑动contentOffset //视图左上角距离坐标原点的偏移量scrollsToTop //滑动到顶部pagingEnabled //是否整屏翻动bounces //边界是否回弹scrollEnabled //是否能够滚动showsHorizontalScrollIndicator //控制是否显示水平方向的滚动条showVerticalScrollIndicator //控制是否显示垂直方向的滚动条alwaysBounceVertical //控制垂直方向遇到边框是否反弹alwaysBounceHorizontal //控制水平方向遇到边框是否反弹

UIScrollView无法滚动的原因

  • 没有设置contentSize
  • scroEnabled = NO;
  • 没有接收到触摸事件:userInteractionEnabled = NO;

@property(nonatomic) CGPoint contentOffset;

这个属性用来表示UIScrollView滚动的位置(其实就是内容左上角与scrollView左上角的间距值)
作用: 用于设置内容的滚动偏移位
计算公式: 移动的距离 = “控件的左上角” - “内容的左上角”
最好先理解iOS的坐标系, 然后再理解公式

随机配图

一个控件看不见的可能

  • 宽度或者个高度为0
  • 位置不对(超出屏幕)
  • hidden == YES;(隐藏起来)
  • alpha <= 0.01;(透明度)
  • 没有设置背景颜色
  • 关于-(void)layoutSubviews
/**
 这个方法专门用来布局子控件,一般在这里设置子空间的frame
 当控件本身的尺寸发生改变的时候,系统会自动调用这个方法
 */
-(void)layoutSubviews
{
    [super layoutSubviews];
    CGFloat shopW = self.frame.size.width;
    CGFloat shopH = self.frame.size.height;
    self.iconView.frame = CGRectMake(0, 0, shopW, shopW);
    self.nameLabel.frame = CGRectMake(0, shopW, shopW, shopH);
}

3、UIScrollView缩放相关属性
minimumZoomScale // 缩小的最小比例maximumZoomScale //放大的最大比例zoomScale //设置变化比例zooming //判断是否正在进行缩放反弹bouncesZoom //控制缩放的时候是否会反弹要实现缩放,还需要实现delegate,指定缩放的视图是谁。

UIScrollView的属性

关于显示内容的

表示UIScrollView滚动的位置(就是内容左上角与scrollView左上角的间距!!)@property (nonatomic) CGPoint contentOffset;表示UIScrollView内容的尺寸,滚动范围@property (nonatomic) CGSize contentSize;在UIScrollView的四周增加额外的滚动区域,一般用来避免scrollView的内容被其他控件挡住@property (nonatomic) UIEdgeInsets contentInset;

其他属性,效果or滚动条

设置UIScrollView是否需要弹簧效果@property (nonatomic) BOOL bounces;设置UIScrollView是否能滚动@property (nonatomic,getter=isScrollEnabled) BOOL scrollEnabled;是否显示水平滚动条@property (nonatomic) BOOL showsHorizontalScrollIndicator;是否显示垂直滚动条@property (nonatomic) BOOL showsVerticalScrollIndicator;

@property(nonatomic) CGSize contentSize;

这个属性用来表示UIScrollView内容的尺寸,滚动范围(能滚多远)

如何使用UIScrollView(使用步骤)

  • 1.创建UIScrollView
  • 2.给UIScrollView添加子控件
  • 3.设置UIScrollView的滚动范围self.scrollView.contenSize = CGSizeMake(300,300);
  • 4.默认情况下只要可以滚动,就有弹簧效果,bounces属性设置是否有回弹效果
  • 5.设置滚动条的样式和控制滚动条的显示
self.scrollview.indecatorStyle = UIScrollViewIndeicatorStyleWhite;//白色样式
self.scrollview.showHorizontalScrollIndicator = NO;//不显示水平方向的滚动条
self.scrollview.shoeVericalScrollIndicator = NO;//垂直方向的滚动条

view的封装

  • 将view内部的子控件自定义,不要让控制器知道
  • 将模型数据给view,view拿到模型数据后给内部子空间设置对应的数据

4.UIScrollView滚动实例应用
- scrollView{ // 创建滚动视图,但我们现实的屏幕超过一屏时,就需要滚动视图 UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:self.view.frame]; scrollView.backgroundColor = [UIColor yellowColor]; scrollView.tag = 1000; // 设置滚动区域 scrollView.contentSize = CGSizeMake(4 * CGRectGetWidth(self.view.frame), self.view.frame.size.height); [self.view addSubview:scrollView]; // 添加子视图 for (int i = 0; i < 4; i   ) { UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(CGRectGetWidth(self.view.frame) * i, 0, CGRectGetWidth(self.view.frame), CGRectGetHeight(self.view.frame))]; label.text = [NSString stringWithFormat:@"这是%d个视图",i]; label.font = [UIFont systemFontOfSize:30]; [scrollView addSubview:label]; UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",i]]]; // (有四张片分别取名0.jpg,1.jpg,2.jpg.3.jpg) [imageView setFrame:self.view.frame]; [label addSubview:imageView];// label.backgroundColor = [UIColor colorWithRed:arc4random()%6/255.0 green:// arc4random()%6/255.0 blue:arc4random()%6/255.0 alpha:1]; } // 设置分页效果  scrollView.pagingEnabled = YES; // 设置滚动条是否显示 scrollView.showsHorizontalScrollIndicator = YES; // 设置边界是否有反弹效果 scrollView.bounces = YES; // 设置滚动条的样式 scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite; /*indicatorStyle UIScrollViewIndicatorStyleDefault, //白色 UIScrollViewIndicatorStyleBlack, // 黑色 */ // 设置scrollView的代理 scrollView.delegate = self; // (记得导入协议代理 <UIScrollViewAccessibilityDelegate>)}

UIScrollView的代理

在很多时候我们需要知道UIScrollView滚动到了那里,它是否停止,那些时候来做一些特定的操作,要想完成那些特定的动作进行时的功能,前提就是能够监听到UIScrollView整个滚动的过程

要想监听整个UIScrollView的滚动过程,就必须给它设置一个代理对象,通过代理得知UIScrollView的滚动过程

@property(nonatomic) UIEdgeInsets contentInset;

作用: 在contentSize周围添加额外的滚动区域
应用场景: 避免UIScrollview中的内容被遮挡

iOS开发屏幕坐标系

  • x轴:越往右边越大
  • Y轴:越往下边越大

如果想让UIScrollView静止某个方向滚动

self.scrollView.contentSize = CGSizeMake(0, 250);
scrollEnabled = NO;
//没有接受到触摸事件
uesrInteractionEnabled = NO;

5、UIScrollView滚动代理方法
// 滚动就会触发- scrollViewDidScroll:(UIScrollView *)scrollView{ NSLog(@"只有scrollview是跟滚动状态就会调用此方法");}//开始拖拽时触发- scrollViewWillBeginDragging:(UIScrollView *)scrollView{ NSLog; }// 结束拖拽时触发- scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:decelerate{ NSLog;}// 开始减速时触发- scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{ NSLog; }// 结束减速时触发- scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ NSLog(@"结束减速;}

UIScrollView和delegate的通信

  • UIScrollView和delegate的通信应该如下表:
手势 方法
开始拖拽 scrollViewWillBeginDragging:
具体到某个位置 scrollViewDidScroll:
用户停止拖拽 scrollViewDidEndDragging:willDecelerate:

UIScrollView需要实现的方法都定义在UIScrollViewDelegate协议中,遵守协议后,实现协议中的方法就可以监听UIScrollView的滚动过程

bounces:

用于设置UIScrollview是否有回弹效果

alwaysBounceVertical/alwaysBounceHorizontal

如果UIScrollview已经设置contentSize, 那么YES和NO没有区别
只有UIScrollview没有设置contentSize才有效果
应用场景: 下拉刷新

UIScrollView常用属性

  • @property(nonatomic) CGPoint contentOffset;
    • 这个属性用来表示UIScrollView滚动的位置(其实就是内容左上角与scrollView左上角的间距值)
    • 作用: 用于设置内容的滚动偏移位
    • 计算公式: 移动的距离 = "控件的左上角" - "内容的左上角"
      • 最好先理解iOS的坐标系, 然后再理解公式
  • @property(nonatomic) CGSize contentSize;
    • 这个属性用来表示UIScrollView内容的尺寸,滚动范围(能滚多远)
  • @property(nonatomic) UIEdgeInsets contentInset;
    • 作用: 在contentSize周围添加额外的滚动区域
    • 应用场景: 避免UIScrollview中的内容被遮挡
  • bounces: 用于设置UIScrollview是否有回弹效果

  • alwaysBounceVertical/alwaysBounceHorizontal

    • 如果UIScrollview已经设置contentSize, 那么YESNO没有区别
    • 只有UIScrollview没有设置contentSize才有效果
    • 应用场景: 下拉刷新
  • indicatorStyle: 设置滚动条的样式

  • showsHorizontalScrollIndicator/showsVerticalScrollIndicator

    • YES显示滚动条/ NO隐藏滚动条
  • 注意理解区分: contentSize/contentOffset/contentInset/frame
    ![](file:///Users/Macx/Desktop/Markdown笔记存储/image/Snip20150802_4.png )

UIScrollView中的几个属性

  • 偏移量 ,相对于UIScrollView原点的偏移量,有正值也有负值。
//contentOffset属性是偏移量,记录UIScrollView滚动的位置(是一个点)
self.scrollView.contentOffset.x;
self.scrollView.contentOffset.y;
NSLog(@"------%@",NSStringFromCGPoint(self.scrollView.contentOffset));
//contentSize属性ScrollView内容的尺寸
//contentInset属性,是一个结构体,在scrollVIew四周增加额外的区域,方便用户点击额外区域的内容
self.scrollView.contentInset = UIEdgInsetMake(64,0,0,0);

![Upload UIScrollView常用属性.png failed. Please try again.]##instancetype和id

  • instancetype比id多一个好处:编译器会检测instancetype的真实类型,会提示警告,防止程序奔溃。

6、UIScrollView缩放实例应用
- viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor orangeColor]; // 初始化一个scrollView UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:self.view.frame]; scrollView.backgroundColor = [UIColor greenColor]; scrollView.delegate = self; // 设置缩放比率 // 设置可缩小道德最小比例 scrollView.minimumZoomScale = 0.5; // 设置可放大的最大比例 scrollView.maximumZoomScale = 2.0; [self.view addSubview:scrollView]; // 使得要添加的图片宽高成比例 UIImage *myImage = [UIImage imageNamed:@"7.jpg"]; // 得到原始宽高 float imageWidth = myImage.size.width; float imageHeight = myImage.size.height; // 这里我们规定imageView的宽为200,根据此宽度得到等比例的高度 float imageViewWidth = 200; float imageViewHeight = 200 *imageHeight/imageWidth; // 初始化一个UIimageview UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, imageViewWidth, imageViewHeight)]; // 为imageView设置图片 imageView.image = myImage; // 让imageView居中 imageView.center = self.view.center; imageView.tag = 1000; [scrollView addSubview:imageView]; }

UIscrollView和控制器

  • 一般情况下,就设置UIScrollView所在的控制器为UIScrollView的delegate
  • 设置代理的方法有两种:
    • 通过代码来设置----self.scrollView.delegate = self;
    • 通过storyboard拖线

indicatorStyle: 设置滚动条的样式

showsHorizontalScrollIndicator/showsVerticalScrollIndicator

YES显示滚动条/ NO隐藏滚动条

UIScrollView不能滚动的原因

  • 1.没有设置contentSize
  • 2.scrollEnabled = NO
  • 3.userInteractionEnabled = NO
    • userInteractionEnabled不是Disabled,他们两有本质的区别
      • Disabled代表控件不能使用, 状态是Disabled状态
      • userInteractionEnabled代表控件是否可以交互

给Xcode中给所有新创建的加上类前缀,在Class Prefix中加入类前缀

全球彩票注册平台 3

屏幕快照 2016-03-07 上午9.52.12.png

本文由全球彩票平台发布于全球彩票注册平台编程,转载请注明出处:全球彩票注册平台UIScrollView属性及其代理方法,

TAG标签: 全球彩票平台
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。