浅谈UIScrollView自动布局及技巧

UIScrollView常用属性-contentSize
  • scrollView 要滚动就必须设置了滚动视图的 contentSize
  • contentSize 的 width 决定了水平方向滚动距离
  • contentSize 的 height 决定了垂直方向滚动距离
  • 只有contenSize大于scrollView时才可以滚动
    ########scrollView没有滚动,是里面的内容在滚动
UIScrollView常用属性-contentOffset
  • scrollView 通过修改 contentOffset 调整内部视图的坐标位置,从而给用户产生一种视觉上的滚动的效果
  • 常用的方法:
 // animate at constant velocity to new offset
//以恒定速度动画移动到新的 offset
-(void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated;   
// scroll so rect is just visible (nearest edges). nothing if rect completely visible
/// 滚动到可见区域(靠近边缘-不会滚动到边缘外侧),如果当前区域完全可见,则什么也不做
-(void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated; 
UIScrollView常用属性-contentInset
  • 对于contentInset,API文档的解释是"默认UIEdgeInsetsZero。添加额外的滚动附近区域的内容"。可以理解为内容视图的上下左右四个边扩展出去的大小。
  • 感觉就下拉刷新和弹出键盘的时候使用
scrollView自动布局及技巧

1.stroyboard中拖入scrollView
2.设置scrollView上下左右约束为0
3.拖入一个UIView到scrollView中

浅谈UIScrollView自动布局及技巧_第1张图片
scrollview错误.png

4.设置view的上下左右约束为0(会报错,原因就是没有足够 的约束指定view的位置)
5.给view设置任意宽高,即解决上述错误
6.contentSize大于scrollView的size才可以滚动

  • 如果我们拖入UIImageView 可以不用设置宽高,因为它里面如果设置了图片,imageView的size会根据图片
    自适应,对应设置 scrollView的contentSize
一个小功能

UIScrollView有个属性

@property(nonatomic) BOOL  scrollsToTop 
      // default is YES.
  • 看了这个图大家就都明白这个属性干什么用的吧
  • 开发中用不到,不过我们玩手机的时候有时候会用到


    toTop.gif

欢迎交流指错

你可能感兴趣的:(浅谈UIScrollView自动布局及技巧)