代码之家  ›  专栏  ›  技术社区  ›  Duck

iPhone-使用当前线程中的Quartz上下文

  •  0
  • Duck  · 技术社区  · 15 年前

    我在主循环中声明了一个Quartz上下文

    UIGraphicsBeginImageContext(mySize);
    ctx = UIGraphicsGetCurrentContext();
    // bla bla bla
    

    当用户在屏幕上做一些事情时,这个上下文正在改变。

    在应用程序中的某个时刻,我需要一个新线程被激发,并获取上下文的内容,保存到uiImageView。

    在线上我有一些像

    myImageView.image = UIGraphicsGetImageFromCurrentImageContext();
    

    但这给了我nil,因为线程无法知道当前上下文是什么。

    我如何解决这个问题?

    谢谢。

    1 回复  |  直到 15 年前
        1
  •  1
  •   John Carter    15 年前

    好吧,这可能是个蹩脚的选择,但你可以试试这个

    - (void) myUIGraphicsGetImageFromCurrentImageContext
        {
        myImageView.image= UIGraphicsGetImageFromCurrentImageContext();
        }
    

    然后在您的线程中,将myImageView.image=_Ω行替换为:

       [self performSelectorOnMainThread:@selector(myUIGraphicsGetImageFromCurrentImageContext) withObject:nil waitUntilDone:YES];