zoukankan      html  css  js  c++  java
  • UIScrollView使用autolayout 垂直滚动

    转自:http://dadage456.blog.163.com/blog/static/30310744201491141752716

    1
    、创建一个空白的UIViewController 2、将UIScrollView添加到UIView控件中,并设置UIScrollView针对父视图UIView的constraints(Leading/trailling/top/bottom = 03、最主要的来了,添加UIView控件到UIScrollView中。。 (1)并改名为ContentView....(UIScrollView主要是靠子视图来实现autolayout的高度和宽度的计算) (2)然后设置ContentView的针对父视图UIScrollView的 constraints 1、Leading/trailling/top= 0 2、bottom = 1 3、equal height / equal width (ContentView的高度和宽度 与 UIScrollView相等) 4、设置equal height的优先级 priority 小于 刚才设置的bottom的优先级(该bottom的是ContentView针对UIScrollView的constraints),这里设置priority=999.
    需要注意 第一:为什么 bottom
    =1 而不是 bottom = 0。 在实际开发中,如果为0,并且ContentView中的内容高度不超过屏幕的高度时,uiscrollview不能下上拉动。
    第二:要实现ContentView 的高度自适应为uiscrollview的contentSize的高度,需要ContentView中的子视图有明确的top与bottom,用来让autolayout计算出ContentView的实    际高度.
    第三:为什么要设置equal height 的优先级。。。我们来写个公式更容易理解 因为 scrollview.height
    = uiview.height 又因为 ContentView.height = scrollview.height + 1 所以 ContentView.height != scrollView.height 也就是不能实现equal height 这个constraints。。会报错。 只要调整一下优先级就可以解决这个问题,出现冲突,优先适应ContentView的高度.... 现在你可以在ContentView上添加你想添加的控件,但记住如果你要添加的控件已经超出了屏幕的高度,你需要给ContentView里面的子控件加上bottom 和 top(不超过你也可以添加),这样autolayout才能计算出ContentView的高度,并将这个高度赋给UIScrollView的ContentSize,实现自适应高度。。。 后记:ContentView中如果使用UILabel,要给uilabel明确的height constraint,这样auto layout才能计算出高度。
  • 相关阅读:
    python记录程序运行时间的三种方法
    LeetCode 922. 按奇偶排序数组 II 做题小结
    LeetCode 976. 三角形的最大周长 做题小结
    LeetCode 1122. 数组的相对排序 做题小结
    LeetCode1528. 重新排列字符串 做题小结
    LeetCode 738. 单调递增的数字 做题小结
    selenium——鼠标操作ActionChains:点击、滑动、拖动
    剑指 Offer 32
    剑指 Offer 32
    二叉树的应用:二叉排序树的删除
  • 原文地址:https://www.cnblogs.com/joesen/p/4462317.html
Copyright © 2011-2022 走看看