Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在ViewController出现之前加载数据/图形/背景的方法_Ios_Swift_Xcode_Calayer_Uibezierpath - Fatal编程技术网

Ios 在ViewController出现之前加载数据/图形/背景的方法

Ios 在ViewController出现之前加载数据/图形/背景的方法,ios,swift,xcode,calayer,uibezierpath,Ios,Swift,Xcode,Calayer,Uibezierpath,我在ViewController中的视图上有一个动画背景,称之为: override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) gradientSet.append([gradientOne, gradientTwo]) gradientSet.append([gradientTwo, gradientThree]) gradientSet.append([gradi

我在ViewController中的视图上有一个动画背景,称之为:

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    gradientSet.append([gradientOne, gradientTwo])
    gradientSet.append([gradientTwo, gradientThree])
    gradientSet.append([gradientThree, gradientOne])

    gradient.frame = self.view.bounds
    gradient.colors = gradientSet[currentGradient]
    gradient.startPoint = CGPoint(x:0, y:0)
    gradient.endPoint = CGPoint(x:1, y:1)
    gradient.drawsAsynchronously = true
    viewBackground.layer.addSublayer(gradient)

    animateGradient()
}
这取决于加载时间,但当我通过点击按钮加载ViewController时,我看到了如何出现“白色闪烁”。我从未在专业应用程序上见过这种行为,所以我认为我做了一些根本错误的事情


如何在ViewController在加载时间之间无缝切换而不出现白色闪烁之前加载颜色、数据和背景内容?

视图中添加代码将显示
而不是
视图显示

override func viewWillAppear(_ animated: Bool) {
    super. viewWillAppear(animated)

    gradientSet.append([gradientOne, gradientTwo])
    gradientSet.append([gradientTwo, gradientThree])
    gradientSet.append([gradientThree, gradientOne])

    gradient.frame = self.view.bounds
    gradient.colors = gradientSet[currentGradient]
    gradient.startPoint = CGPoint(x:0, y:0)
    gradient.endPoint = CGPoint(x:1, y:1)
    gradient.drawsAsynchronously = true
    viewBackground.layer.addSublayer(gradient)

    animateGradient()
}

尝试将代码移动到
视图将出现