美文网首页
UIScrollView的基本使用

UIScrollView的基本使用

作者: 小神猫 | 来源:发表于2016-05-14 01:29 被阅读74次

UIScrollView的基本概念

UIScrollView是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容

UIScrollView的基本使用

  • 将需要展示的内容添加到UIScrollView中

  • 设置UIScrollView的contentSize属性,告诉UIScrollView所有内容的尺寸,也就是告诉它滚动的范围(能滚多远,滚到哪里是尽头)

  • UIScrollView显示内容的小细节

  • 超出UIScrollView边框的内容会被自动隐藏(相当于CLipToBounts)

  • 用户可以用过手势拖动来查看超出边框并被隐藏的内容

UIScrollView的可能无法滚动的原因

  • 如果UIScrollView无法滚动,可能是以下原因:
  • 没有设置contentSize
  • scrollEnabled = NO
  • 没有接收到触摸事件:userInteractionEnabled = NO
  • 设置的contentSize < scroll的尺寸

UIScrollView的常见属性

  • @property(nonatomic) CGPoint contentOffset;
    这个属性用来表示UIScrollView滚动的位置
    (其实就是内容左上角与scrollView左上角的间距值)

  • @property(nonatomic) CGSize contentSize;
    这个属性用来表示UIScrollView内容的尺寸,滚动范围(能滚多远)

  • @property(nonatomic) UIEdgeInsets contentInset;
    这个属性能够在UIScrollView的4周增加额外的滚动区域,一般用来避免scrollView的内容被其他控件挡住

UIScrollView的其他属性

  • @property(nonatomic) BOOL bounces;
    设置UIScrollView是否需要弹簧效果

  • @property(nonatomic,getter=isScrollEnabled) BOOL scrollEnabled;
    设置UIScrollView是否能滚动

  • @property(nonatomic) BOOL showsHorizontalScrollIndicator;
    是否显示水平滚动条

  • @property(nonatomic) BOOL showsVerticalScrollIndicator;
    是否显示垂直滚动条

scrollView常用代理方法

/只要滚动了就会触发
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;
{
  NSLog(@" scrollViewDidScroll");

}
//开始拖拽视图
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;
{
   NSLog(@"scrollViewWillBeginDragging");
}
//完成拖拽
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;
{
   NSLog(@"scrollViewDidEndDragging");
}
//将开始降速时
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView;
{
   NSLog(@"scrollViewWillBeginDecelerating");
}

//减速停止了时执行,手触摸时执行执行
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;
{
   NSLog(@"scrollViewDidEndDecelerating");
}
//滚动动画停止时执行,代码改变时出发,也就是setContentOffset改变时
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView;
{
   NSLog(@"scrollViewDidEndScrollingAnimation");
}
//设置放大缩小的视图,要是uiscrollview的subview
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;
{
   NSLog(@"viewForZoomingInScrollView");
    return viewA;
}
//完成放大缩小时调用
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale;
{
   NSLog(@"scale between minimum and maximum. called after any 'bounce' animations");
}

//如果你不是完全滚动到滚轴视图的顶部,你可以轻点状态栏,那个可视的滚轴视图会一直滚动到顶部,那是默认行为,你可以通过该方法返回NO来关闭它
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView;
{
    NSLog(@"scrollViewShouldScrollToTop");
   return YES;
}

- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView;
{
    NSLog(@"scrollViewDidScrollToTop");
}

相关文章

网友评论

      本文标题:UIScrollView的基本使用

      本文链接:https://www.haomeiwen.com/subject/piumrttx.html