gpt4 book ai didi

ios - ScrollView 中最后一个元素的坐标

转载 作者:行者123 更新时间:2023-11-28 08:21:32 27 4
gpt4 key购买 nike

我有这个 ScrollView ,其中包含许多高度可变的元素。

我想知道是否有办法知道 ScrollView 中最后一个元素的 maxY,而无需将 ScrollView 中所有元素的高度相加。

我尝试了 lastViewInScrollView.frame.maxY ,但它不正确。

最佳答案

这完全是数学,正如您所说,您不想在最后一个元素之前添加所有元素,没关系,现在使用 ScrollView 的末尾。
根据苹果文档(https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/WorkingwithScrollViews.html),要正确处理 ScrollView ,您必须添加一个 UIView(比如说 myView),然后是您的组件。

假设您的 ScrollView 包含 10 个不同高度的 UIView (view1, view2, ... view10),并且您的 viewController 如下所示:

enter image description here

处理 UIScrollView 的约束:

  • scollview 约束:

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

    b)尾随到superview:0

    c)从顶部到 super View :0

    d) 从底部到 super View :0
  • 在 ScrollView 中保留一个uiview(说myView)并给出约束:

    a) 导致 scollView : 0

    b) scollView 的尾随:0

    c) 顶部到 scollView : 0

    d) 到 scollView 的底部:0

    e) 与主 View 等宽//假设您不想要水平滚动,否则不要给出
  • 现在在 myView 中添加 view1,添加约束
    a) 导致 myView : 0

    b) 尾随到 myView : 0

    c) 顶部到 myView : 0

    d) 恒定高度 = height1

  • 现在,view1.frame = (0,0,scW,height1)//scW 是 scrollViewWidth,你不需要设置这个框架。我只是写在这里描述你的view1的框架。
  • 现在在 myView 中添加 view2,添加约束

    a) 导致 myView : 0

    b) 尾随到 myView : 0

    c) 从顶部到 view1 : 0

    d) 恒定高度 = height2

    :

    :

    :

    :

    :

  • 对 View 9重复相同的操作,
  • 现在在 myView 中添加 view10,添加约束

    a) 导致 myView : 0

    b) 尾随到 myView : 0

    c) 从顶部到 view9:0

    d) 恒定高度 = height2

    e) myView 底部:0

  • 如果您遇到如何设置框架的问题,特别是当它们不在 Controller View 中时,请选择 VC 转到其属性并设置大小自由度并设置 VC 的任意高度,以便您可以设置所有框架。不要忘记将此 VC 大小设置为推断。

    注意:永远不要为 ScrollView 提供静态高度, ScrollView 本身会通过计算其组件的高度来计算其高度,但请记住,您必须为其 super View 提供最顶层组件的顶部约束,并为所有组件的最低组件底部组件和高度提供组件(此处为 UIView)。

    试试上面的这个过程,这是新的 i ScrollView 的好习惯。

    如何设置 SCOLLVIEW I.E. 的动态高度一些观点正在改变那里的高度根据那里的内容

    让在上面的同一个例子中,有三个 View (aView,bView,cView)并且高度是可变的(因为我们在设计过程中不知道它们的高度,但我们知道最小高度让 Ha,Hb,Hc 分别),它们是在 View 2。

    view2 的contriants 已经由我们给定了,现在从 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) 底部到 view2 : 0

  • 注意 每当您处理 ScrollView 时,您都必须这样做,如果您的组件是动态的,请给出高度(保持最小高度)关系 greaterthanequalto(>=)如果您的组件具有静态高度,请给出关系 equalto(=)

    关于ios - ScrollView 中最后一个元素的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41185453/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com