UIScrollView的属性和用法

布满荆棘的人生 2022-07-16 09:38 301阅读 0赞

1.什么是UIScrollView?

  1. 简单来说UIScrollView就是一个可以用来实现滚动和缩放的UI控件。UIScrollView类为显示大于应用窗口的内容提供支持。通过它,用户可以使用滑动手势来滚动,并可以使用扩张/收缩手势来放大缩小部分内容。

2.常用属性:

  1. 1) contentSize:
  2. 内容视图的大小,单位是点。默认值是CGSizeZero.要比scrollViewsize大。
  3. 2) contentInset:
  4. 表示内容视图从封闭滚动视图中被嵌入的距离。该属性增加围绕内容的滚动区域。单位为点。
  5. 3) contentOffset:
  6. 表示从滚动视图的原点到内容视图的原点的偏移的距离。
  7. 4) bounces:
  8. 控制滚动视图是否具有弹簧效果。若该值为YES,表示滚动视图具备弹簧效果;若值为NO,滚动视图会在到达边缘时立即停止。默认值为YES。一般不会关闭这个效果。
  9. 5) alwaysBounceVertical:
  10. 布尔值,规定滚动视图是在垂直方向上否总是具有弹簧效果(即使不设置contentSize也可以有弹簧效果)。前提是bounces = YES;
  11. 6) alwaysBouncesHorizontal:
  12. 布尔值,规定滚动视图是在水平方向上否总是具有弹簧效果(即使不设置contentSize也可以有弹簧效果)。前提是bounces = YES;
  13. 7) scrollEnabled:
  14. 布尔值。设置是否可以滚动。若该值为YES,则允许滚动;若该值为NO,则禁止滚动。默认值为YES;当滚动被禁止时,滚动视图将不再接受触摸事件,滚动视图会将事件传送至响应链中。
  15. 8) showsHorizontalScrollIndicator:
  16. 布尔值。控制水平滚动指示器是否可见。默认值为YES。指示器会在跟踪时显示并在跟踪之后消失。
  17. 9) showsVerticalScrollIndicator:
  18. 布尔值。控制垂直滚动指示器是否可见。默认值为YES。指示器会在跟踪时显示并在跟踪之后消失。
  19. 10) zoomScale:
  20. 指定当前应用于滚动视图的内容的缩放因子。可以通过minimumZoomScale设置最小的缩小倍数;maxmumZoomScale设置最大的放大倍数。

3.用法:

  1. #import "ViewController.h"
  2. @interface ViewController ()
  3. @property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
  4. @property (weak, nonatomic) IBOutlet UIImageView *imageView;
  5. @end
  6. @implementation ViewController
  7. - (void)viewDidLoad {
  8. [super viewDidLoad];
  9. /**
  10. scrollView中的内容滚动就必须要设置: 滚动范围
  11. contentSize: 子控件的大小,限定滚动的范围
  12. contentSize在设置的时候一定要比scrollView的size要大
  13. 如果size中的宽度设为0,就表示横向中不能滚动
  14. */
  15. _scrollView.contentSize = self.imageView.frame.size;//(第四步时关闭)
  16. /**
  17. 2.
  18. 隐藏滚动条
  19. Horizontal: 水平
  20. Vertical: 垂直
  21. */
  22. _scrollView.showsHorizontalScrollIndicator = NO;
  23. _scrollView.showsVerticalScrollIndicator = NO;
  24. /**
  25. 3.
  26. bounces: 弹簧效果
  27. 一般不关闭
  28. */
  29. _scrollView.bounces = YES;
  30. /**
  31. 不设置contentSize的时候,弹簧效果开启,依然看不到
  32. */
  33. /**
  34. 4.
  35. 下面的方法可以在不设置contentSize清空下,在水平和垂直方向上依然有弹簧效果
  36. 前提是:scrollView.bounces = YES;
  37. alwaysBounceHorizontal
  38. alwaysBounceVertical
  39. */
  40. _scrollView.alwaysBounceHorizontal = YES;
  41. _scrollView.alwaysBounceVertical = YES;
  42. /**
  43. 5.
  44. contentInset: 内边距
  45. 没有设置contentInset的时候,拖动后imageView默认会停留在初始位置
  46. contentInset: 拖动后,会停留在设置 的内边距位置
  47. UIEdgeInsetsMake:结构体 对应的是
  48. top, left, bottom, right
  49. */
  50. _scrollView.contentInset = UIEdgeInsetsMake(10, 20, 30, 40);
  51. /**
  52. 6.
  53. contentOffset: offset偏移量 ,滚动到了某个位置
  54. */
  55. _scrollView.contentOffset = CGPointMake(100, 0);
  56. /**
  57. 7.scrollView 不能滚动的原因
  58. 1.contentSize 比 scrollView的size小
  59. 2.关闭用户交互: _scrollView.userInteractionEnabled = NO;
  60. 3. _scrollView.scrollEnabled = NO;
  61. */
  62. _scrollView.scrollEnabled = YES;
  63. }
  64. @end

发表评论

表情:
评论列表 (有 0 条评论,301人围观)

还没有评论,来说两句吧...

相关阅读

    相关 box-sizing属性

    box-sizing属性用来设置或检索对象的盒模型组成模式 起因是因为盒子模型分为标准盒子模型和IE盒子模型。 这意味着,如果我们设置一个宽度为200px,而实际呈现的盒子