scrollView实用技巧

来源:互联网 发布:淘宝客机器人软件下载 编辑:程序博客网 时间:2024/06/07 10:04

-scrollView自动布局技巧

  • 步骤:

    • sb中拖scrollView
    • 设置scrollView上下左右为0
    • 拖一个UIView到scrollView中,并设置颜色(不是imageView)
    • 设置UIView的自动布局上下左右为0(此时报错)
    • 设置UIView和scrollView等宽等高
    • 更新frame,并运行

    • 设置宽高约束的乘积为2,并运行

    • 演示分页属性,并运行
    • 设置向上约束为100,并运行
    • 通过约束设置四个按钮到四个角
  • 小结:

    • scrollView的自动布局比较特殊
    • 通常添加一个容器视图 view
    • 设置四边对齐,constant 是对应的 contentInset 的值(不常用)
    • 设置view宽高,对应设置 scrollView的contentSize

-scrollView-代理方法

  • scrollViewDidScroll: 滚动视图滚动时使用
  • scrollViewDidEndDecelerating: 滚动视图停止滚动时使用
  • viewForZoomingInScrollView: 缩放视图时使用

  • 滚动相关方法
/// 滚动视图开始滚动- (void)scrollViewDidScroll:(UIScrollView *)scrollView {    NSLog(@"%s", __FUNCTION__);}/// 将要减速 - 在释放开手之后调用- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {    NSLog(@"%s", __FUNCTION__);}/// 完成减速 - 完全静止后调用- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {    NSLog(@"%s", __FUNCTION__);}
  • 缩放相关方法
/// 只要缩放就会调用/// - 需要设置最小缩放比例(minimumZoomScale)和最大缩放比例(maximumZoomScale)////// - 需要实现 `viewForZoomingInScrollView` 方法 告诉 scrollView 缩放的视图- (void)scrollViewDidZoom:(UIScrollView *)scrollView {    NSLog(@"%s", __FUNCTION__);}/// 告诉滚动视图缩放的视图- (nullable UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {    return _imageView;}/// 缩放开始时调用////// @param scrollView 滚动视图/// @param view       缩放的视图- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(nullable UIView *)view {    NSLog(@"%s", __FUNCTION__);}/// 缩放结束后调用////// @param scrollView 滚动视图/// @param view       缩放的视图/// @param scale      缩放的比例- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(nullable UIView *)view atScale:(CGFloat)scale {    NSLog(@"%s", __FUNCTION__);}
  • 拖拽相关方法
/// 将要开始拖拽////// @param scrollView 滚动视图- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {    NSLog(@"%s", __FUNCTION__);}/// 将要结束拖拽////// @param scrollView          滚动视图/// @param velocity            速度/// @param targetContentOffset 目标偏移位置- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {    NSLog(@"%s", __FUNCTION__);}/// 完成拖拽方法,手指放开后调用////// @param scrollView 滚动视图/// @param decelerate 是否减速- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {    NSLog(@"%s %d", __FUNCTION__, decelerate);}
  • 状态栏相关方法
/// 将要滚动到顶部,点击状态栏时调用- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView {    NSLog(@"%s", __FUNCTION__);    return YES;}/// 已经滚动到状态栏- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView {    NSLog(@"%s", __FUNCTION__);}
  • 动画相关方法
/** The scroll view calls this method at the end of its implementations of the setContentOffset:animated: and scrollRectToVisible:animated: methods, but only if animations are requested. 滚动视图会在实现了 setContentOffset:animated: & scrollRectToVisible:animated: 方法之后 调用此方法 同时必须在上述两个方法中允许动画 */- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {    NSLog(@"%s", __FUNCTION__);}
0 0