使用 scrollView.zoom 时,按下按钮和调用函数会得到不同的结果
When using scrollView.zoom I get different results from pressing a button to calling a function
我正在尝试缩放到 UIScrollView 上的按钮。第一个功能是我 运行 如果我转到 vc,第二个功能是 运行 来自视图中的按钮。
当运行使用第二个函数时,它完美运行并正确居中
然而,首先,尽管代码相同,但它在 x 轴上有大约 40-50 像素的偏移量(显示按钮左侧的一个点,而不是按钮的任何部分),尽管此偏移量会根据按钮。
func moveScrollviewToRoom(){
scrollView.zoom(to: artButton.frame, animated: true)
}
@IBAction func moveScrollview(_ sender: Any) {
scrollView.zoom(to: artButton.frame, animated: true)
}
这里调用了函数:
override func viewDidLoad() {
super.viewDidLoad()
if moveToRoom != "" {
moveScrollviewToRoom()
}
如有任何帮助,我们将不胜感激
干杯!
两点...
1 - 视图和子视图尚未在 viewDidLoad()
中通过自动布局定位,因此 artButton.frame
将不正确。
2 - 从 viewDidLoad()
调用任何动画视图的函数都不会给出所需的结果,因为视图甚至还不可见。
将您的电话转到 viewDidAppear()
:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
if moveToRoom != "" {
moveScrollviewToRoom()
}
}
我正在尝试缩放到 UIScrollView 上的按钮。第一个功能是我 运行 如果我转到 vc,第二个功能是 运行 来自视图中的按钮。
当运行使用第二个函数时,它完美运行并正确居中
然而,首先,尽管代码相同,但它在 x 轴上有大约 40-50 像素的偏移量(显示按钮左侧的一个点,而不是按钮的任何部分),尽管此偏移量会根据按钮。
func moveScrollviewToRoom(){
scrollView.zoom(to: artButton.frame, animated: true)
}
@IBAction func moveScrollview(_ sender: Any) {
scrollView.zoom(to: artButton.frame, animated: true)
}
这里调用了函数:
override func viewDidLoad() {
super.viewDidLoad()
if moveToRoom != "" {
moveScrollviewToRoom()
}
如有任何帮助,我们将不胜感激
干杯!
两点...
1 - 视图和子视图尚未在 viewDidLoad()
中通过自动布局定位,因此 artButton.frame
将不正确。
2 - 从 viewDidLoad()
调用任何动画视图的函数都不会给出所需的结果,因为视图甚至还不可见。
将您的电话转到 viewDidAppear()
:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
if moveToRoom != "" {
moveScrollviewToRoom()
}
}