小编Che*_*kie的帖子

是否有CIColorControls的设置,使图像不受影响?

我正在Swift中使用CIFilter CIColorControls来更改相机输入,但是找不到任何设置可以使图像不受影响。我正在尝试通过调整UISliders来校准CIColorControls中的饱和度,亮度和对比度参数。

该文档指出inputSaturation和inputContrast的默认值为1.0。inputBrightness不声明输入值,但是在调整这些值时,我找不到从该设置开始显示不受所有这三个设置影响的图像的设置,这使我怀疑此过滤器根本存在问题。

我正在通过applyFilter传递未更改的CIImage:

image = image
    .applyingFilter("CIColorControls", parameters: [kCIInputImageKey: image,
                                                            kCIInputSaturationKey:debugSatVal,
                                                            kCIInputBrightnessKey:debugBrightVal,
                                                            kCIInputContrastKey:debugConVal])
Run Code Online (Sandbox Code Playgroud)

debugSatVal,debugBrightVal和debugConVal由UISliders控制,我可以在LLDB中观察它们的值。

cifilter swift

2
推荐指数
1
解决办法
453
查看次数

目标的构建设置中没有"金属编译器"

我正在使用Xcode 10.1.即使在我的目标的构建设置中使用搜索功能,我找不到"金属编译器"或任何相关的金属.

这里描述的金属设置可以在Build Settings中设置,但我找不到任何东西:https://developer.apple.com/documentation/coreimage/cikernel/2880194-init

它被切掉或更换了吗?

xcode build-settings metal cikernel

2
推荐指数
1
解决办法
137
查看次数

UIWebView缩放级别

我必须检查UIWebView的缩放级别.并将其最高级别设置为特定级别.我试过这段代码但没有成功

编辑的帖子包括代码格式

UIScrollView *sRouteView = [[testWebView subviews] objectAtIndex:0];
    sRouteView.delegate = self;
    sRouteView.minimumZoomScale = 1.0;
    sRouteView.maximumZoomScale = 2.0;
    sRouteView.zoomScale = sRouteView.minimumZoomScale;
Run Code Online (Sandbox Code Playgroud)

我无法设置UIWebView的最大缩放级别

iphone uiwebview

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

Swift 如何显示警报以请求照片库的许可?

我在一个弹出窗口中点击了“取消”,该弹出窗口要求对我制作的应用程序中的照片库进行许可。这来自我没有制作的东西,而是来自操作系统。

现在,如果用户再次尝试点击照片库按钮,我需要回退。授权状态为拒绝。我通过这种方式检查证明:

    let status = PHPhotoLibrary.authorizationStatus()

    switch status {
    case .authorized:
        print("authorized")

    case .denied:
        print("denied") // it is denied

    case .notDetermined:
        print("notDetermined")

    case .restricted:
        print("restricted")

    }
Run Code Online (Sandbox Code Playgroud)

如何再次显示一个弹出窗口,要求获得照片库的许可?我到处找,找不到任何有用的东西。

我希望它是这样的,但 PHPhotoLibrary 没有成员“requestAccess”:

PHPhotoLibrary.requestAccess(for: ???) { response in
    if response {
        //access granted
    } else {

    }
}
Run Code Online (Sandbox Code Playgroud)

authorization request swift phphotolibrary

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

随时随地在Cocos2d for iPhone中获取当前触摸位置

我一直在使用以下方法来检测触摸何时开始以及位置是什么:

-(BOOL) ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event{

    CGPoint touchLocation = [touch locationInView: [touch view]];
    touchLocation = [[CCDirector sharedDirector] convertToGL:touchLocation];

    touchLocation = [self convertToNodeSpace:touchLocation];

    return YES;
}
Run Code Online (Sandbox Code Playgroud)

但我还想知道如果我的手指仍然在屏幕上,我可以随时获取当前位置.谁知道怎么样?谢谢.

编辑

我会稍微发布这个作为答案,但这就是我所做的:

我只是在我所有方法之外定义的ccTime方法中转换变量:

- (void)update:(ccTime)dt {
heroMoveEndLoc = [self convertToNodeSpace:heroMoveEndLoc];
}
Run Code Online (Sandbox Code Playgroud)

iphone touch cocos2d-iphone

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

在Cocos2D for iPhone中"从没有强制转换的整数中生成指针"

我在cocos2D中使用一个调用方法并将BOOL作为参数传递的动作.

我收到警告:"传递参数3'actionWithTarget:selector:data:'使用此行生成没有强制转换的整数的指针":

id actionCharacterReaction = [CCCallFuncND actionWithTarget:self selector:@selector(characterReaction : data:) data:flipChar];
Run Code Online (Sandbox Code Playgroud)

我试过了:

id actionCharacterReaction = [CCCallFuncND actionWithTarget:self selector:@selector(characterReaction : data:) data:(BOOL)flipChar];
Run Code Online (Sandbox Code Playgroud)

我的方法看起来像这样:

-(void) characterReaction:(id)sender data:(BOOL)flipChar {
    *code stuff inside*
}
Run Code Online (Sandbox Code Playgroud)

它似乎仍然很好.我对这个警告感到恼火.有任何想法吗?

iphone methods arguments selector cocos2d-iphone

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

Objective C数组"key"而不是index

我希望能够使用NSString或类似的东西来存储字符串数组,但是通过键访问它们(我认为这就是它的名称),而不是数字索引.

例如,而不是这样做:

return names[3];
Run Code Online (Sandbox Code Playgroud)

做这样的事情:

return names["Bob"];
Run Code Online (Sandbox Code Playgroud)

你如何存储和检索这样的值?

请原谅我对此缺乏了解.我已经使用Objective C大约一年了,但从来没有做过这样的事情.

arrays indexing key objective-c

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

Cocos2D:通过CCCallFuncND传递CGPoint

使用动作调用方法的适当方法是什么,以及传递CGPoint参数的方法本身应该是什么样的?我试图在网上查找没有太多运气的例子,所以我一直在猜测.

我试过的就是这个叫它:

    CGPoint spriteCoord = saveStation.sprite.position;

    id a1=[CCMoveTo actionWithDuration:.4 position:ccp(saveStation.sprite.position.x,saveStation.sprite.position.y)];
    id actionSaveStationReaction = [CCCallFuncND actionWithTarget:self selector:@selector(saveStationReaction : data:) data:&spriteCoord];

    [hero.heroSprite runAction:[CCSequence actions:a1, actionSaveStationReaction, nil]];
Run Code Online (Sandbox Code Playgroud)

方法本身:

-(void) saveStationReaction:(id)sender data:(void *)data {

    CGPoint spriteCoord = (void *)data; //error: Invalid initializer 

    NSLog(@"spriteCoord x = %f", spriteCoord.x);
    NSLog(@"spriteCoord y = %f", spriteCoord.y);

}
Run Code Online (Sandbox Code Playgroud)

parameters methods cocos2d-iphone cgpoint

0
推荐指数
2
解决办法
2690
查看次数

在 Swift 中制作动画之前,如何将转换应用于 UILabel?

在视图为比例设置动画之前,我希望在没有动画的情况下旋转视图。如果我之后有动画,我现在拥有它的方式会忽略我的初始视图旋转。

label.transform = CGAffineTransform(rotationAngle: CGFloat(90.0 * .pi / 180))

animateLabel(label:label)

func animateLabel(label:UILabel) {

    label.transform = CGAffineTransform(scaleX: 0.6, y: 0.6)

    UIView.animate(withDuration: 0.2, animations: {
        label.transform = CGAffineTransform(scaleX: 1.1, y: 1.1)
    },
    completion: { _ in
        UIView.animate(withDuration: 0.1) {
            label.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)

        }
    })

}
Run Code Online (Sandbox Code Playgroud)

更新:我如何用马特的回答更新我的代码,以便它正确动画:

我首先将初始旋转设置为变换变量,然后在调用 animateLabel 时发送它:

var transforms: CGAffineTransform = .identity

transforms = transforms.concatenating(CGAffineTransform(rotationAngle: CGFloat(90.0 * .pi / 180)))

animateLabel(label:label, transforms:transforms)
Run Code Online (Sandbox Code Playgroud)

我连接比例并将变换设置为修改后的变换。然后我可以对实际动画使用缩放比例:

func animateLabel(label:UILabel, transforms:CGAffineTransform) {

    transforms.concatenating(CGAffineTransform(scaleX: 0.6, y: 0.6))

    label.transform = transforms

    UIView.animate(withDuration: 0.2, …
Run Code Online (Sandbox Code Playgroud)

transform rotation uilabel swift

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

滑动手势会中断iOS 13中的UISlider控件,但不会中断以前的iOS版本

注意:这是iOS 13 beta,但也可能会在明天正式发布。

更新2:我将其替换为较大的缩略图,但仍然有问题。

更新:如果我非常精确地触摸滑块上的拇指,它似乎仍然可以连续控制。但是,为什么要更改此设置?如何使它像以前一样进行控制?

我向视图添加了滑动手势识别器:

    let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(self.respondToSwipeGesture))
    swipeRight.direction = UISwipeGestureRecognizer.Direction.right
    self.view.addGestureRecognizer(swipeRight)
Run Code Online (Sandbox Code Playgroud)

稍后,我将UISlider添加到同一视图:

        let slider = UISlider()
        let sliderLength:CGFloat = 175
        slider.frame = CGRect(x:0,
                              y:CGFloat(customHeight) - 35,
                              width:sliderLength,
                              height:35)


        slider.minimumValue = -1.2 
        slider.maximumValue = 0.6
        slider.setValue(Float(snowSliderValAdder), animated: false)

        slider.addTarget(self, action: #selector(self.updateSnowSliderValue(_:)), for: .valueChanged)

        view.addSubview(slider)
Run Code Online (Sandbox Code Playgroud)

以前可以正常运行的东西现在在iOS 13中表现不佳。如果我将其缓慢移动,则可以移动滑块上的拇指,但是如果进行任何滑动动作,则滑块上的拇指会停止移动,并且手势为触发。我该如何阻止这种情况的发生?

uislider uiswipegesturerecognizer swift ios13

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