Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.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/4/macos/10.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
Objective c NSView*子类更改颜色动画_Objective C_Macos_Core Animation_Nsview_Nscolor - Fatal编程技术网

Objective c NSView*子类更改颜色动画

Objective c NSView*子类更改颜色动画,objective-c,macos,core-animation,nsview,nscolor,Objective C,Macos,Core Animation,Nsview,Nscolor,我在OSX上,XCode 8.3.3,Objective-C。 我已将NSView*子类化以设置自定义背景颜色: h m 现在我可以打电话了 [view setBackgroundColor:[NSColor someColor]]; [view setNeedsDisplay:YES]; 改变颜色。我想知道是否有一种方法来制作这种变化的动画?我最终使用了层备份视图和pop动画框架 @implementation SHViewWhiteBackground - (void)drawRect:

我在OSX上,XCode 8.3.3,Objective-C。 我已将NSView*子类化以设置自定义背景颜色:

h

m

现在我可以打电话了

[view setBackgroundColor:[NSColor someColor]];
[view setNeedsDisplay:YES];

改变颜色。我想知道是否有一种方法来制作这种变化的动画?

我最终使用了层备份视图和pop动画框架

@implementation SHViewWhiteBackground

- (void)drawRect:(NSRect)dirtyRect {
    NSColor* fillColor = [NSColor whiteColor];

    if (self.backgroundColor)
        fillColor = self.backgroundColor;

    [fillColor setFill];
    NSRectFill(dirtyRect);
    [super drawRect:dirtyRect];
}

@end
[view setBackgroundColor:[NSColor someColor]];
[view setNeedsDisplay:YES];