UIScrollView 总结笔记

来源:互联网 发布:乐视for mac 编辑:程序博客网 时间:2024/06/10 10:36

1.注意

  • 如果UIScrollView无法滚动,可能是以下原因:
  • 没有设置contentSize
  • scrollEnabled = NO
  • 没有接收到触摸事件:userInteractionEnabled = NO
  • 没有取消autolayout功能(要想scrollView滚动,必须取消autolayout

2.UIScrollView使用

    1.scrollView添加内容

    2.设置contentSize属性(只能在代码中设置)

3.UIScrollView重要属性

    1.contentOffset(通过按钮改变其位移)

    2.contentInset

        注意:通过stroryboard设置立即生效,通过代码设置需配合contentOffect手动位移

@property(nonatomicCGPoint contentOffset;

这个属性用来表示UIScrollView滚动的位置

@property(nonatomicCGSize contentSize; 

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

@property(nonatomicUIEdgeInsets contentInset; 

这个属性能够在UIScrollView4周增加额外的滚动区域


4.APP

    1.xib界面布局(减少代码)

    2.通过最后按钮的frame获取contentSizeheightCGRectGetMaxY(frame))

    3.storyboard设置contentInset(使用代码设置还需设置contentOffset


5.scrollView代理方法

    1.要想成为代理遵守协议(UIScrollViewDelegate)

        1.声明协议(一般协议名称:控件名称 + Delegate)

        2.实现协议定义的接口方法

        3.设置代理(UIViewController成为scrollView的代理)

// 用户开始拖拽时调用

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

// 滚动到某个位置时调用

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

// 用户结束拖拽时调用

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




6.scrollView实现缩放功能 

    1.设置最大、最小缩放倍数(注:倍数相等时,无法缩放)

     minimumZoomScale :缩小的最小比例

     maximumZoomScale :放大的最大比例

       2.当用户在UIScrollView身上使用捏合手势时,UIScrollView会调用代理的viewForZoomingInScrollView:方法,这个方法返回的控件就是需要进行缩放的控件

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

         缩放完毕的时候调用 

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

           正在缩放的时候调用

    - (void)scrollViewDidZoom:(UIScrollView *)scrollView

7.图片轮播功能

    1.将内容添加到scrollView中(5张图片)

    2.设置scrollViewcontentSize

    3.设置翻页属性(UIScrollViewpageEnabled属性设置为YES

    4.添加UIPageControl控件

    5.设置UIPageControl的页码 (利用contentSize计算页码)

  • 一共有多少页

@property(nonatomic)NSInteger numberOfPages;

  • 当前显示的页码

@property(nonatomic)NSInteger currentPage; 

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

@property(nonatomic)BOOL hidesForSinglePage; 

  • 其他页码指示器的颜色

@property(nonatomic,retain)UIColor *pageIndicatorTintColor;

  • 当前页码指示器的颜色

@property(nonatomic,retain)UIColor *currentPageIndicatorTintColor;


    6.增加自动滚动(NSTimer实现)

调用下面的方法就会开启一个定时任务

+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)titarget:(id)aTarget 

selector:(SEL)aSelector 

userInfo:(id)userInfo 

repeats:(BOOL)yesOrNo;

每隔ti秒,调用一次aTargetaSelector方法,yesOrNo决定了是否重复执行这个任务

通过invalidate方法可以停止定时器的工作,一旦定时器被停止了,就不能再次执行任务。只能再创建一个新的定时器才能执行新的任务

- (void)invalidate;


0 0
原创粉丝点击