UIScrollView

//UIScrollView 滚动视图

   //滚动原因:控件大小限制了可显示的范围,如果想要显示更多的内容,需要滚动

   //滚动的条件:内容大小 > frame.size

//内容大小

    self.sv.contentSize = CGSizeMake(VIEW_WIDTH*6, VIEW_HEIGHT);

//偏移量

   //只要视图滚动 偏移量就会变化

   //只要改变偏移量 视图就会滚动

   sv.contentOffset = CGPointMake(100, 100);

//内边距

   sv.contentInset = UIEdgeInsetsMake(100, 200, 300, 400);

   /*  整页翻动  */

   //以当前滚动视图的宽度为1页

   self.sv.pagingEnabled = YES;

   /*  边缘弹动效果  */

   self.sv.bounces = YES;

   /*  滚到顶部 */

   //每个滚动视图默认都为YES 一个页面中存在多个滚动视图时 仅开启需要滚动的视图 其他滚动视图置为NO

   self.sv.scrollsToTop = NO;

   /* 是否允许滚动 */

   self.sv.scrollEnabled = YES;

   /* 滚动条显示/隐藏  */

   //水平Horizontal

   self.sv.showsHorizontalScrollIndicator = NO;

   //垂直Vertical

   self.sv.showsVerticalScrollIndicator = NO;

//UIPageControl

   //视图的滚动分为两个阶段:

   //1.拖拽(手指在屏幕上)

   //2.减速(手指离开屏幕)

   self.sv.delegate = self;

   //滚动视图功能为:滚动/缩放

   //最小比例

   self.sv.minimumZoomScale = 0.5;

   //最大比例

   self.sv.maximumZoomScale = 2;

#parma --- scrollView的代理方法

       // scrollView正在滚动的时候调用 偏移量一直变化

        - (void)scrollViewDidScroll:(UIScrollView *)scrollView;

       // scrollView正在缩放

        - (void)scrollViewDidZoom:(UIScrollView *)scrollView

        //开始拖拽的时候调用

        - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;

        //即将停止拖拽的时候调用

        - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inoutCGPoint *)targetContentOffset NS_AVAILABLE_IOS(5_0);

       // 已经停止拖拽调用

        - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;

        //scrollView即将开始减速

        - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView;

       // scrollView停止减速 停止

        - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;

        //scrollView停止滚的的动画

        - (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView;

        //在scrollView中 哪些控件是需要缩放的

        - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;

        //scrollView即将开始缩放

        - (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view NS_AVAILABLE_IOS(3_2);

        //scrollView结束缩放

        - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale;

        //scrollView即将滚动到顶部

        - (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView;

        //scrollView已经滚动到顶部

        - (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView;

通过UIScrollView实现缩放效果

//准备开始缩放的时候调用 

- (void)scrollViewWillBeginZooming:(UIScrollView*)scrollView withView:(UIView*)view

//正在缩放的时候调用

- (void)scrollViewDidZoom:(UIScrollView*)scrollView

核心代码:设置内容大小

    contentSize.height == 0设置为0仅仅代表竖直方向上不能滚动

   self.scrollView.contentSize=CGSizeMake(count * w, 0);

   分页

    每一页的尺寸都是跟scrollView的frame.size一样的

   self.scrollView.pagingEnabled=YES; 

- (void)scrollViewDidScroll:(UIScrollView*)scrollView{

    --四舍五入为整数的方法--  (int)(小数+ 0.5)

    0.3  -> (int)(0.3 + 0.5) == 0

    0.4 -> (int)(0.4 + 0.5) == 0

    1.5 -> (int)(1.5 + 0.5) == 2

    0.7 -> (int)(0.7 + 0.5) == 1

    小数加上0.5再转换成整数,这样页码显示的就是正确的页数(仔细想)

   intpage = (int)(scrollView.contentOffset.x/ scrollView.frame.size.width+ 0.5);

   self.pageControl.currentPage= page;

}

- (void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView{

   intpage = scrollView.contentOffset.x/ scrollView.frame.size.width;

   self.pageControl.currentPage= page;

}

分页

只要将UIScollView的pageEnabled属性设置为YES,UIScrollView会被分割成多个独立页面,里面的内容就能进行分页展示,一般会配合UIPageControl增强分页效果

//一共有多少页

@property(nonatomic)NSIntegernumberOfPages;

当前显示第几页

@property(nonatomic)NSIntegercurrentPage; 

//只有一页时,是否需要隐藏页码指示器

@property(nonatomic)BOOLhidesForSinglePage; 

//其他页码指示器的颜色

@property(nonatomic,retain)UIColor*pageIndicatorTintColor;

//当前页码指示器的颜色

@property(nonatomic,retain)UIColor*currentPageIndicatorTintColor;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,699评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,124评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,127评论 0 358
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,342评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,356评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,057评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,654评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,572评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,095评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,205评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,343评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,015评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,704评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,196评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,320评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,690评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,348评论 2 358

推荐阅读更多精彩内容