在应用程序启动时,我试图使用以下代码通过查看加载更改单独视图的位置:
let xPosition = dynView.frame.origin.x - 100
//View will slide view
let yPosition = dynView.frame.origin.y;
let height = dynView.frame.size.height
let width = dynView.frame.size.width
UIView.animate(withDuration: 1.0, animations: {
self.dynView.frame = CGRect(x: xPosition, y: yPosition, width: width, height: height)
})
但是,这似乎无法直接在viewDidLoad中工作。如果我使用iAction将to指定给按钮,代码就会工作
我猜我这里遗漏了什么,但我不知道是什么。
参考您在评论中关于使用约束的回答:
是的,我知道。我假设这与此有关?在viewddLoad之后加载约束吗?
没错,从viewddLoad()留档:
在控制器的视图加载到内存后调用。
与检查约束设置是否已完成(子视图已布局)无关。
如果我没有搞错的话,您要查找的是viewDidLayoutSubviews()方法:
调用以通知视图控制器其视图刚刚布局了其子视图。
视图控制器可以重写此方法,以便在视图布局其子视图后进行更改。此方法的默认实现不执行任何操作。
所以,与其在viewddLoad()
中实现更改视图y位置的代码,不如尝试让它在viewddLayoutSubview()
中,如下所示:
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
let xPosition = dynView.frame.origin.x - 100
let yPosition = dynView.frame.origin.y
let height = dynView.frame.size.height
let width = dynView.frame.size.width
UIView.animate(withDuration: 1.0, animations: {
self.dynView.frame = CGRect(x: xPosition, y: yPosition, width: width, height: height)
})
}
此外:如果不希望在弹出/取消下一个ViewController后重复动画,可以声明一个标志属性以确定是否启动动画,类似于:
var isAnimated = false
override func viewDidLayoutSubviews() {
if isAnimated == false {
super.viewDidLayoutSubviews()
UIView.animate(withDuration: 1.0, animations: {
self.btn.frame.origin.y = 20
}, completion: { _ in
self.isAnimated = true
})
}
}
附加说明:
我建议更改约束的值,而不是直接更改帧大小/原点。您可能需要检查此问题/答案。
我有一个非常令人沮丧的问题,我不知道是什么问题。我构建了只包含GridView的简单XML。这个gridview应该显示从特定的URL下载的图像(ImageView ),我用我的代码检索这些图像。 因此,此应用程序的想法只是从URL下载图像并在网格视图中显示这些图像。首先,我必须说我正在使用通用图像加载器库。首先,请看一下我的获取视图代码: 问题: 上面的代码有效,它在GridView中显示图像。
我有一个具有2个视图\控制器的应用程序: 谢谢你。
基本上,我有一个方法可以将Image从数据库加载到ImageView中,还有第二个方法可以更改图像,我成功地运行了这两个方法,没有出现异常,但是在change eImage()方法中的setImage之后,我需要更新什么以及如何(场景、阶段)是可能的。我知道在javafx中没有像swings中的repaint()这样的方法,那么我该如何处理呢?
我知道有几个类似的主题,但我读了并尝试了其中的大部分,但仍然不知道如何做到这一点。 我写了一个组件在Joomla 2.5和它的工作到目前为止。我有不同的视图,我可以使用controller.php.其中一个视图显示了我的数据库(关于团队的数据)中的一个表。 现在我想有另一个相同视图的布局,它将数据基表显示为表单,以便可以更改内容。 这是文件结构: -团队/ ---tmpl/ - - - defau
本文向大家介绍在SAP HANA中更改数据库视图,包括了在SAP HANA中更改数据库视图的使用技巧和注意事项,需要的朋友参考一下 您可以更改视图,然后我们可以使用“更改视图”命令来更改视图。 示例 我们已应用ALTER命令来更新名称为View_EmpInfo的现有视图,该视图正在对ID列的两个表应用内部联接以创建数据库视图。
我正在Laravel5.1中创建一个应用程序,它以前工作得很好。我在视图文件中所做的任何更改都会反映在浏览器中。现在,在过去3天中,浏览器中未反映任何更改。 以下是我的视图文件: 主人刀身php 我正在将css文件的名称更改为app。但是当我运行应用程序时,它会显示main。源代码中的css。 我在storage/framework中查找了缓存,它显示了带有旧代码“main”的视图文件。css“我