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的约束:
-
scollview约束:
a)导致superview:0 // superview(VC mainView)
b)追踪到超级视图:0
c)顶级到超级视图:0
d)底部到超视图:0
-
在滚动视图中保留一个uview(称为myView)并给出一些build议:
a)导致scollView:0
b)跟踪到scollView:0
c)顶部到scollView:0
d)底部scollView:0
e)等宽的主视图/ /假设,因为你不想水平滚动,否则,不给
-
现在在myView中添加view1,添加约束a)导致myView:0
b)追踪到myView:0
c)顶部到myView:0
d)恒定高度=高度1
现在,view1.frame =(0,0,scW,height1)// scW是scrollViewWidth,你不需要设置这个框架。 我只是写在这里来描述view1的框架。
-
现在在myView中添加view2,添加约束
a)导致myView:0
b)追踪到myView:0
c)顶部到view1:0
d)恒定高度=高度2
:
:
:
:
:
重复同样的view9,
-
现在在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(>=)
。
-
aView的约束:
a)顶部到view2:0
b)导致view2:0
c)追踪到view2:0
d)恒定的高度:Ha,与关系
greaterthanequalto(>=)
-
bView的约束:
a)顶部到aView:0
b)导致view2:0
c)追踪到view2:0
d)恒定的高度:Hb,与关系
greaterthanequalto(>=)
-
cView的约束:
a)顶部到bView:0
b)导致view2:0
c)追踪到view2:0
d)恒定的高度:Hc,与关系
greaterthanequalto(>=)
e)底部查看2:0
注意当你处理scrollview的时候,你必须做同样的事情,如果你的组件是dynamic的,给出高度(保持最小高度)关系greaterthanequalto(>=)
,如果你的组件有静态高度给予equalto(=)