Objective c 在macOS Cocoa应用程序中,我实现了一个简单的发光红点图标,用于指示活动进行的时间。我怎样才能使它更流畅?

Objective c 在macOS Cocoa应用程序中,我实现了一个简单的发光红点图标,用于指示活动进行的时间。我怎样才能使它更流畅?,objective-c,swift,cocoa,catransition,Objective C,Swift,Cocoa,Catransition,我正在实现发光的红色按钮作为NSImageView的一个子类。你可以看到我的代码 当背景活动正在进行时,红色圆圈图像不会像应有的那样流动发光。但是,它在背景处理结束时开始发光 有人能通过查看我的代码给我一些建议吗?如果我理解正确,当你从后台线程调用它时,你的红色按钮不会发光 因为您不能从后台线程更新UI。 您可以在此处有两个选项: 使用DispatchQueue.main.async 在主线程上实现动画代码!这太疯狂了!我不推荐这个 对不起,如果你看一下我提供的代码,我不是从后台线程调用的。我的

我正在实现发光的红色按钮作为NSImageView的一个子类。你可以看到我的代码

当背景活动正在进行时,红色圆圈图像不会像应有的那样流动发光。但是,它在背景处理结束时开始发光


有人能通过查看我的代码给我一些建议吗?

如果我理解正确,当你从后台线程调用它时,你的红色按钮不会发光

因为您不能从后台线程更新UI。 您可以在此处有两个选项:

  • 使用
    DispatchQueue.main.async
  • 在主线程上实现动画代码!这太疯狂了!我不推荐这个
    对不起,如果你看一下我提供的代码,我不是从后台线程调用的。我的子类是完全独立的,它发光而不需要添加任何代码,因为它的动画布尔值在创建对象时设置为true。我只是在interface builder中创建了该类的一个实例。我很清楚UI代码不能在后台线程中调用。@AlfonsoTesauro好的,看来我没有正确理解您的意思。我可以建议你转述一下你的问题吗?祝你好运