Stroyboard中使用ScrollView

当我们使用Storyboard开发项目时,如果要往控制器上拖入一个ScrollView并且添加约束设置滚动区域,是有特殊的规定的:

  • 拖入一个scrollview,规定它的位置大小:

  • 如果想要scrollview滚动的话,需要一个view作为scrollview的子视图,称之为 containerView,并且containerView的约束决定着scroll view 是否可以滚动

注意:在实际开发中,我们可能会遇到不止上下滚动(设置水平居中和高度)的时候,如果要左右滚动就设置垂直居中和宽度就好,如果要上下左右都可以滚动的话,就设置宽高、不需要设置水平或者垂直居中

常用方法和属性

        // 滚动区域
scrollView.contentSize
// 当前的滚动位置,偏移量
scrollView.contentOffset
// content view 的定点位于 scroll view 的位置
scrollView.contentInset
        // 定向锁定 true的话就算是双向滚动,触发滚动时也只能单向滚动
scrollview.directionalLockEnabled = true
// 滚动条样式
scrollview.indicatorStyle = UIScrollViewIndicatorStyle.Black
// 减速速度
scrollview.decelerationRate = 0.5

代理方法备忘

    // 视图滚动中就会调用这个方法,多次调用。
func scrollViewDidScroll(scrollView: UIScrollView) { } // 是否允许点击状态栏滚动到最顶部。
func scrollViewShouldScrollToTop(scrollView: UIScrollView) -> Bool {
return true
} // 在允许点击状态栏滚动到最顶部的情况下,点击状态栏滚动到最顶部时调用
func scrollViewDidScrollToTop(scrollView: UIScrollView) {
print("scrollViewDidScrollToTop")
} // 滚动即将开始拖动,当手指稍微移动一点点时调用方法
func scrollViewWillBeginDragging(scrollView: UIScrollView) {
print("scrollViewWillBeginDragging")
} // 滚动视图已经结束减速,即为滚动视图已经停止了滚动
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
print("scrollViewDidEndDecelerating")
} // 滚动视图即将开始减速,当手指离开后让scrollview自然减速,就会调用这个方法
func scrollViewWillBeginDecelerating(scrollView: UIScrollView) {
print("scrollViewWillBeginDecelerating")
} // 这个方法当调用 scrollview.setContentOffset(animation:) 这个方法时才会调用这个方法
func scrollViewDidEndScrollingAnimation(scrollView: UIScrollView) {
print("scrollViewDidEndScrollingAnimation")
} // 滚动视图即将停止拖拽,即手指离开屏幕那一刻
func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
print("scrollViewWillEndDragging")
} // 滚动书体已经停止拖拽,会比scrollViewWillEndDragging晚调用
func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) {
print("scrollViewDidEndDragging")
} // 滚动视图已经缩放,多次调用
func scrollViewDidZoom(scrollView: UIScrollView) {
print("scrollViewDidZoom")
} // 滚动视图即将开始缩放
func scrollViewWillBeginZooming(scrollView: UIScrollView, withView view: UIView?) { } // 滚动视图已经缩放完毕
func scrollViewDidEndZooming(scrollView: UIScrollView, withView view: UIView?, atScale scale: CGFloat) { } // 返回要缩放的视图
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
return zoomingView
}

最新文章

  1. Android Studio NDK编程-环境搭建及Hello!
  2. PHP Switch case 条件并用实例
  3. SQLAutoCode - error when attempting to generate schema
  4. Nginx泛解析的匹配域名绑定到子目录配置
  5. DIV+CSS+JS基础+正则表达式
  6. 拉曼软件在win8上运行出错问题
  7. 今天的学习——关于JS时间获取方面的小问题
  8. Android 颜色Color(转)
  9. STL--queue
  10. shell和vim的配色
  11. private
  12. Mysql分表教程
  13. [转]如何学好windows c++编程 学习精髓(收集,整理)
  14. VC获取精确时间的做法
  15. LOJ #10130 点的距离
  16. 基础 - 字符读取函数scanf、getchar、gets、cin(清空缓存区解决单字符回车问题)
  17. linux每日命令(23):find命令之xargs
  18. Android SAX解析XML
  19. 高德地图JS-API (超简单Get新技能√)
  20. Android Webview SSL 自签名安全校验解决方案

热门文章

  1. Unity EditorWindow 笔记
  2. Office激活密钥
  3. 使用val()方法设置表单中的默认选中项
  4. leetcode第一刷_Triangle
  5. linux 基础学习图解
  6. Oracle11g新特性导致空表不能导出问题
  7. CentOS 6.7安装Tomcat 7
  8. WPF 格式化输出- IValueConverter接口的使用
  9. C语言基础知识小总结(1)
  10. 在sql2008的实例 中 编写存储过程 读取 版本为sql2005 的实例 中的某个数据库里的数据