小编Con*_*ltz的帖子

CAAnimationGroup具有不同的界面元素

我想交叉淡化两个NSViews并调整它们的大小NSWindow.我知道如何单独进行,但到目前为止还不知道如何同时进行.我想我需要CAAnimationGroup它.但是因为我正在处理两个不同的对象,我不知道如何在组中添加两个动画,我不知道如何启动动画,因为我无法同时调用animator它们.

cocoa nsview nswindow caanimation

7
推荐指数
1
解决办法
640
查看次数

尝试访问CIFilter的outputImage时出现"无法识别的选择器"

我第一次尝试使用Core Image(OS X,10.7.3)并且遇到了一堵砖墙.我确定这是我正在做的傻事,只需要更熟悉框架的人向我指出.

请考虑以下代码(让我们规定这imageURL是一个指向磁盘上JPG的有效文件URL):

CIImage *inputImage = [CIImage imageWithContentsOfURL:imageURL];
CIFilter *filter = [CIFilter filterWithName:@"CIAreaAverage" keysAndValues:
                                                  kCIInputImageKey, inputImage,
                                                  kCIInputExtentKey, [inputImage valueForKey:@"extent"],
                                                  nil];
CIImage *outputImage = (CIImage *)[filter valueForKey:@"outputImage"];
Run Code Online (Sandbox Code Playgroud)

运行此代码时,最后一行触发:

0   CoreFoundation                      0x00007fff96c2efc6 __exceptionPreprocess + 198
1   libobjc.A.dylib                     0x00007fff9153cd5e objc_exception_throw + 43
2   CoreFoundation                      0x00007fff96cbb2ae -[NSObject doesNotRecognizeSelector:] + 190
3   CoreFoundation                      0x00007fff96c1be73 ___forwarding___ + 371
4   CoreFoundation                      0x00007fff96c1bc88 _CF_forwarding_prep_0 + 232
5   CoreImage                           0x00007fff8f03c38d -[CIAreaAverage outputImage] + 52
6   Foundation                          0x00007fff991d8384 _NSGetUsingKeyValueGetter + 62
7   Foundation                          0x00007fff991d8339 -[NSObject(NSKeyValueCoding) valueForKey:] + …
Run Code Online (Sandbox Code Playgroud)

macos cocoa objective-c core-image

4
推荐指数
1
解决办法
1982
查看次数

我想我陷入僵局但不太明白为什么

我正在尝试使用GCD一个接一个地放置图像,如下所示

-(void)setUpImages {
    NSArray *images  =   @[[UIImage imageNamed:@"blogger-icon.png"],
                           [UIImage imageNamed:@"gplus-icon.png"],
                            [UIImage imageNamed:@"facebok-icon.png"]
                           ];
    [images enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
          dispatch_sync(dispatch_get_main_queue(), ^{
                UIImageView     *imageView  =   [[UIImageView alloc] initWithFrame:CGRectMake(80, idx * ((UIImage*)obj).size.height + idx*30 + 10, ((UIImage*)obj).size.width, ((UIImage*)obj).size.height)];
                NSLog(@"index is %@",NSStringFromCGRect(imageView.frame));

                [imageView setImage:(UIImage*)obj];
                [self.view.layer addSublayer:imageView.layer];
                sleep(1); 
            });
    }];

}
Run Code Online (Sandbox Code Playgroud)

我正在使用,dispatch_sync因为我希望它会等到它的块完成(第一个图像放在屏幕上)然后第二个图像将是,所以第三个图像.现在所有的事情都发生在主线上.

但是,似乎我在中间遇到了僵局,我的逻辑在某些方面是错误的.

我需要帮助来了解这种情况.请帮忙.

multithreading objective-c grand-central-dispatch ios

0
推荐指数
1
解决办法
129
查看次数