2015-02-08 121 views
0

在swift中,我有一个功能,当用户触摸屏幕时,我想在图像上下文中显示图像。代码编译正确,但没有图像显示。我相信错误在于这个函数,因为我不确定我完全理解如何显示图像。我是否正确地制作图像?CGImage Display

func generateImage() -> UIImage { 

    let centerX = CGRectGetWidth(self.frame)/2 
    let centerY = CGRectGetHeight(self.frame)/2 
    var startPoint = CGPoint(x: centerX, y: centerY) 
    var endPoint = CGPoint(x: centerX, y: centerY) 
    let imageRect = CGRect(x: centerX, y: centerY, width: 150, height: 150) 
    let insideImage = UIImage(named: "at") 
    let insideCGImage = insideImage?.CGImage 

    // Generate the image 
    // Begin an image context 
    UIGraphicsBeginImageContext(self.frame.size) 
    let imageContext = UIGraphicsGetCurrentContext() 
    // Use CG to draw the image into the image context 
    CGContextDrawImage(imageContext, imageRect, insideCGImage) 
    let image = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 

    return image 
} 
+0

你添加图像到一个视图? – Christian 2015-02-08 23:11:56

+0

在视图控制器中,我有一个UIView引用了名为ImageDrag的类。 – Beatle 2015-02-08 23:24:46

+0

'@IBOutlet weak var mainImage:ImageDrag!' – Beatle 2015-02-08 23:25:32

回答

0

你必须使用你的函数的返回值:

mainImage = generateImage() 

否则,这个值是不是在任何地方使用,并保持使用。

如果你的方法是在其他类,你必须创建一个实例,并调用方法:

var classInstance = YourClassWithTheFunction() 

然后就可以调用这样的方法:

mainImage = classInstance.generateImage() 
+0

我不知道我是否关注。我的控制器中的mainImage插座变量无法访问其他类(即ImageDrag)中的generateImage函数。当我尝试它时,我会遇到大量的错误。 – Beatle 2015-02-08 23:55:20

+0

你必须创建一个实例并调用方法:var classInstance = YourClassWithTheFunction()然后你可以调用这样的方法:classInstance.generateImage() – Christian 2015-02-08 23:58:47

+0

我得到的错误是在这段代码的第三行:'@IBOutlet weak var mainImage:ImageDrag! var classInstance = ImageDrag(frame:CGRect()) var mainImage = classInstance.ImageDrag()'XCode引发错误,说'ViewController.Type'没有名为'classInstance'的成员 – Beatle 2015-02-09 00:23:40