Ios 以编程方式滚动UIScrollView,使UILabel正好位于导航栏下方

Ios 以编程方式滚动UIScrollView,使UILabel正好位于导航栏下方,ios,swift,Ios,Swift,我有一个UIScrollView,其中包含各种按钮、文本字段和标签块 在第二个块中有一个UILabel标题。当我点击它旁边的按钮时,我希望通过编程滚动,使这个标签位于屏幕的左上角,导航栏的正下方 我可以使用setContentOffset函数以编程方式执行此操作,但我无法解决如何以编程方式获取y的值。由于顶部块可以根据用户输入展开或收缩,因此我需要以编程方式获取此值。如何获得标签的正确y值 let myLabelTopYPoint = ??! 我玩了下面两行,但都没有给出我想要的 let my

我有一个UIScrollView,其中包含各种按钮、文本字段和标签块

在第二个块中有一个UILabel标题。当我点击它旁边的按钮时,我希望通过编程滚动,使这个标签位于屏幕的左上角,导航栏的正下方

我可以使用setContentOffset函数以编程方式执行此操作,但我无法解决如何以编程方式获取y的值。由于顶部块可以根据用户输入展开或收缩,因此我需要以编程方式获取此值。如何获得标签的正确y值

let myLabelTopYPoint = ??!
我玩了下面两行,但都没有给出我想要的

let myLabelTopYPoint = myLabel.convert(myLabel.center, to: self.view).y

let myLabelTopYPoint = myLabel.frame.maxY
(手动选择y值为200时应用以下公式,同时适用于大多数用户输入,但并不令人满意)


您可以在滚动视图中获得标签的y位置,如下所示:

let myLabelTopYPoint = yourScrollView.convert(myLabel.frame, to: yourScrollView).minY

谢谢,但这总是给我“0”-我需要的是相对于导航栏的点,而不是相对于导航栏本身的点。除非我做错了什么?不幸的是,myLabel.frame再次给出了0,0,所以会滚动到页面顶部。感谢您的尝试。您是否忘了使用ScrollView.convert而不是view.convert?对我来说似乎是一个正确的答案。或者你的scrollView的顶部被限制在屏幕的顶部,而不是导航栏;我的标签在一个stackView和另一个stackView中,我认为这是干扰。谢谢你的帮助
let myLabelTopYPoint = yourScrollView.convert(myLabel.frame, to: yourScrollView).minY