ScrollView自动布局技巧

scrollView自动布局技巧

  • 步骤:
1. sb中拖scrollView
2. 设置scrollView上下左右为0
4. 拖一个UIView"yellowView"到scrollView中(不是imageView)
5. 设置yellowView的自动布局上下左右为0(此时报错,实际缺少尺寸"无法算出contentSize")
6. 设置yellowView和scrollView等宽等高
7. 更新frame,并运行
  • 此时无法滚动,因为contentSize和scrollView的size一样大

8.设置yellowView宽约束的是scrollView宽的2倍,并运行
  • 此时 可以滚动了,因为yellowView的宽大于scrollView自身的宽

9. 设置yellowView顶部约束为64,并运行,会影响它的contentSize
10. 给yellowView上的添加按钮,并设置约束,演示分页属性,并运行
  • 实验小结:
1. 设置scrollView中内容的距离scrollView四边边距值,会影响contentSize即滚动范围,上下间距
   会影响contentSize的Hieght"垂直滚动范围",左右间距会影响水平滚动范围(不常用,了解装逼使用)
2. 如果用AutoLayout约束scrollView中的内容时只设置四边间距约束是不够的,还要设置view宽高
3. 除了UIImageView可以不用直接设置宽高,因为它里面如果设置了图片,imageView的size会根据图片               
   自适应,对应设置 scrollView的contentSize
4. 切记scrollView在实用自动布局时比较特殊
5. 建议:如果一个scrollView中有很多小控件可以把小控件添加一个容器视图 view,设置容器view的尺
   寸为contentSize

scrollView-代理方法

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

  • 滚动相关方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    NSLog(@"%@", @"scrollview视图开始滚动");
}

- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {
    NSLog(@"%@", @"将要减速 - 在释放开手之后调用");
}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    NSLog(@"%@", @"完成减速 - 完全静止后调用");
}
  • 缩放相关方法

实现缩放的两个步骤

  1. 需要设置最小缩放比例(minimumZoomScale)和最大缩放比例(maximumZoomScale)都为1时无法缩放
  2. 需要实现 “viewForZoomingInScrollView” 方法 告诉 scrollView 缩放的视图

( 只要缩放就会调用 )

 // 告诉滚动视图缩放的视图
- (nullable UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
    return _imageView;
}


// @param scrollView 滚动视图
// @param view       缩放的视图
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(nullable UIView *)view {

    NSLog(@"%@", @
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zok93

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值