ScrollView中最后一个元素的坐标

我有这个滚动视图与许多元素里面的高度是可变的。

我想知道是否有一种方法可以知道scrollview中最后一个元素的最大值,而不会增加scrollview中所有元素的高度。

我试过lastViewInScrollView.frame.maxY,这是不对的。

这完全是math,正如你所说的,你不想在最后一个元素之前添加所有的元素,那好吧,现在在scrollview的结尾处理。 根据苹果文档( https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/WorkingwithScrollViews.html ),正确处理scrollView你必须添加一个UIView(让我说myView)然后你的组件。

假设你有包含10个不同高度的UIView(view1,view2,… view10)的scrollview,你的viewController就像下面这样:

在这里输入图像说明

处理UIScrollView的约束:

  1. scollview约束:

    a)导致superview:0 // superview(VC mainView)

    b)追踪到超级视图:0

    c)顶级到超级视图:0

    d)底部到超视图:0

  2. 在滚动视图中保留一个uview(称为myView)并给出一些build议:

    a)导致scollView:0

    b)跟踪到scollView:0

    c)顶部到scollView:0

    d)底部scollView:0

    e)等宽的主视图/ /假设,因为你不想水平滚动,否则,不给

  3. 现在在myView中添加view1,添加约束a)导致myView:0

    b)追踪到myView:0

    c)顶部到myView:0

    d)恒定高度=高度1

现在,view1.frame =(0,0,scW,height1)// scW是scrollViewWidth,你不需要设置这个框架。 我只是写在这里来描述view1的框架。

  1. 现在在myView中添加view2,添加约束

    a)导致myView:0

    b)追踪到myView:0

    c)顶部到view1:0

    d)恒定高度=高度2

重复同样的view9,

  1. 现在在myView中添加view10,添加约束

    a)导致myView:0

    b)追踪到myView:0

    c)顶端查看9:0

    d)恒定高度=高度2

    e)底部到myView:0

如果你面临着如何设置帧的问题,特别是当它们不在控制器视图中时,那么select你的VC属性并设置大小的自由度,并设置任何VC的高度,以便你可以设置所有的帧。 不要忘记把这个VC的大小设置成错误的。

注意:永远不要给静态高度滚动视图,滚动视图将自己通过计算其组件的高度计算其高度,但要记住,你必须给最顶级的组件顶部constaraint到其超级视图和最低的组件底部组件和高度所有的组件(这里,UIView)。

试试这个上面的过程,这是新的我滚动视图的好习惯。

如何设置dynamic高度的SCOLLVIEW IE浏览器的一些视图正在改变高度根据内容

在上面的例子中,有三个视图(aView,bView,cView),高度是可变的(因为在devise时我们不知道它们的高度,但是我们知道最小高度是Ha,Hb,Hc)在view2中。

view2的contriants已经由我们给出了,现在将其高度关系从equalto(=)改变为equalto(=) greaterthanequalto(>=)

  1. aView的约束:

    a)顶部到view2:0

    b)导致view2:0

    c)追踪到view2:0

    d)恒定的高度:Ha,与关系greaterthanequalto(>=)

  2. bView的约束:

    a)顶部到aView:0

    b)导致view2:0

    c)追踪到view2:0

    d)恒定的高度:Hb,与关系greaterthanequalto(>=)

  3. cView的约束:

    a)顶部到bView:0

    b)导致view2:0

    c)追踪到view2:0

    d)恒定的高度:Hc,与关系greaterthanequalto(>=)

    e)底部查看2:0

注意当你处理scrollview的时候,你必须做同样的事情,如果你的组件是dynamic的,给出高度(保持最小高度)关系greaterthanequalto(>=) ,如果你的组件有静态高度给予equalto(=)