我试图在Swift中设置一个hello-world-type型GPUImage示例。代码构建没有错误,但我得到一个没有图像的纯白色屏幕。在故事板中将GPUImageView
的背景颜色更改为红色会更改设备上的颜色,但使用该类的setBackgroundColorRed(...)
方法无效。
以下是我设置的步骤:
GPUImage
.xcworkspace
#include "GPUImage.h"
放入桥接文件标题UIView
拖入故事板,添加了autolayout
个约束,将其类更改为GPUImageView
,并在ViewController
类中创建了一个插座GPUImagePicture
import UIKit
class ViewController: UIViewController {
let image = GPUImagePicture(image: UIImage(named: "cameraman.png"))
@IBOutlet weak var imageView: GPUImageView!
override func viewDidLoad() {
super.viewDidLoad()
self.image.addTarget(self.imageView)
self.image.processImage()
}
}
如果我打印出imageView
或image
我得到非空的指针,imageView
有一个非零看的帧。奇怪的是,我在没有任何问题的情况下在其他项目中使用了GPUImage,并且无法想象我这次做的事情有多么不同 - 我确定它是一个非常小的东西,我和#39我失踪了,但我似乎无法将手指放在上面。我在这里上传了这个项目:
https://bitbucket.org/DVigneault/stack/downloads
修改
我正在使用XCode 6.3和iOS 8.3
编辑2:
更新到XCode 6.3.1后的结果相同
编辑3:
如果我在self.image.processImage()
中添加viewDidAppear
,我会得到所需的结果(即出现图像)。我发现,在我过去使用GPUImage
的任何时候,我都会在视图出现后至少调用processImage()
一次。在视图出现后调用processImage()
是否总是?