小编Jos*_*llo的帖子

SpriteKit.从可选到强制解包的更改会导致应用程序崩溃

我正在关注SpriteKit的教程,它有一个IF语句的问题.该线的逻辑如下:如果子弹和小行星发生碰撞,则将其移除.

if body1.categoryBitMask == PhysicsCategories.bullet && body2.categoryBitMask == PhysicsCategories.asteroid {
   // remove bullet and asteroid
}
Run Code Online (Sandbox Code Playgroud)

当试图确保小行星(body2.node)在可关闭区域之前可以关闭之前,会出现问题.为此,作者添加了以下内容:

body2.node?.position.y < self.size.height
Run Code Online (Sandbox Code Playgroud)

制作完整的IF声明如下:

if body1.categoryBitMask == PhysicsCategories.bullet && body2.categoryBitMask == PhysicsCategories.asteroid && body2.node?.position.y < self.size.height {
   // remove bullet and asteroid
}
Run Code Online (Sandbox Code Playgroud)

显然这条线与Swift 2配合使用,但是Swift 3进行了一次校正,从一个可选的位置改变了位置,并且力量展开了位置.

    if body1.categoryBitMask == PhysicsCategories.bullet && body2.categoryBitMask == PhysicsCategories.asteroid && body2.node!.position.y < self.size.height {
        // remove bullet and asteroid        
    }
Run Code Online (Sandbox Code Playgroud)

通过强行展开位置,当三个物体碰撞时,应用程序崩溃了"我认为".在看屏幕时真的很难分辨.

我正在测试下面的代码,我还没有遇到任何问题.你们认为下面的修复工作会起作用吗?我在想的是,如果我确定body2.node不是nil,那么没有理由为什么应用程序应该崩溃,因为在尝试强行打开它时不会遇到nil.

if body1.categoryBitMask == PhysicsCategories.bullet && body2.categoryBitMask == PhysicsCategories.asteroid {
    // If the bullet has hit the …
Run Code Online (Sandbox Code Playgroud)

sprite-kit swift3

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

SpriteKit:如何识别用户来自的先前场景?

我有一个GameOver场景,带有一个指向“设置”场景的按钮。(下面显示的代码)我想在MainMenu场景上添加一个按钮以执行相同的操作,将用户转到“设置”场景,但是我只想在“设置”场景上使用一个“返回”按钮。我假设这可以通过IF语句完成。如果用户来自A场景,则移至B;否则,如果用户来自X场景,则移至Y场景。

如何在SpriteKit中分辨出用户来自哪个场景?

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

    for touch: AnyObject in touches {

        let pointOfTouch = touch.location(in: self)

        let nodeUserTapped = atPoint(pointOfTouch)

        if nodeUserTapped.name == "BackButton" {

            let sceneToMoveTo = SKScene(fileNamed: "GameOverScene")
            let gameTransition = SKTransition.fade(withDuration: 0.5)
            self.view!.presentScene(sceneToMoveTo!, transition: gameTransition)

        }

    }

}
Run Code Online (Sandbox Code Playgroud)

sprite-kit swift3

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

jquery插件用于切换列表视图和列视图以进行引导

我正在尝试整理一个脚本来切换网格和列出组视图.我希望利用引导类尽可能保持代码尽可能轻松.我最终会添加额外的类col-lg-*etc ...并在cookie脚本上工作但是现在,我正在尝试使用wrapAll包装一些类,包装一个nwrapper.第一次单击网格视图按钮,工作正常,之后每次列表视图也会这样做但是我在第二次单击后尝试修复网格视图时遇到困难.也许另一双眼睛可以帮助我看到我做错了什么.

以下是我正在研究的内容:切换列表网格视图.

到目前为止这是脚本:

$(document).ready(function() {

$('#grid').click(function() {
    $('#products').fadeOut(300, function() {
        $(this).addClass('row-group').fadeIn(300);
        $(this).removeClass('list-group').fadeIn(300);
        $('#grid').addClass('disabled');
        $('#list').removeClass('disabled');

        $('.item').removeClass('list-group-item row');
        $('.item').wrap( '<div class="col-md-4" />');

        $(this).nwrapper({
            wrapEvery      : 3,
            defaultClasses : false,
            extraClasses   : ['row']
        });

        $.cookie('list_grid', 'g');
    });

    return false;



});

$('#list').click(function() {
    $('#products').fadeOut(300, function() {
        $(this).removeClass('row-group').fadeIn(300);
        $(this).addClass('list-group').fadeIn(300);
        $('#grid').removeClass('disabled');
        $('#list').addClass('disabled');

        $('.col-md-4').unwrap(); // unwraps nwrapper above

        $('.item').addClass('list-group-item row');
        $('.item').unwrap( '<div class="col-md-4" />');

        $('.inner').nwrapper({
            wrapEvery      : 2,
            defaultClasses : false,
            extraClasses   : ['col-md-9']
        });

        $('.list-group-image').wrap( '<div class="col-md-3" />');

        $.cookie('list_grid', null);
    }); …
Run Code Online (Sandbox Code Playgroud)

jquery listview gridview twitter-bootstrap twitter-bootstrap-3

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

在 Xcode 12 上运行应用程序时按钮不起作用

我正在使用版本 12.0.1 (12A7300)。我在 UIViews 上有一些按钮,在 UITableViewCells 中有其他按钮。表格单元格内按钮的操作位于我使用协议访问的父视图控制器中。在模拟器或我的设备上运行应用程序时。所有按钮都是以编程方式添加的。按钮不起作用。我重新安装了 Xcode 版本 11.7 (11E801a),一切正常。

有什么办法可以解决这个问题?这是一个错误还是做了一些改变而我不知道?

这是我的代码示例。在 UITableViewCell 中:

var addToCartDelegate: AddToCartDelegate?

let addToCartButton: UIButton = {
    let button = UIButton()
    return button
}()

let applePayButton: PKPaymentButton = {
    let button = PKPaymentButton(paymentButtonType: .buy, paymentButtonStyle: .whiteOutline)
    return button
}()

func configureAddToCartButton() {
    let button = addToCartButton
    button.setTitle("Add To Cart", for: .normal)
    button.titleLabel?.font = getScaledFont(forFont: Fonts.bold, textStyle: .body)
    button.setTitleColor(Colors.primaryButtonTintColor, for: .normal)
    button.tintColor = Colors.primaryButtonTintColor
    button.backgroundColor = Colors.primaryButtonBackgroundColor
    button.layer.cornerRadius = Attributes.cornerRadius
    button.addTarget(self, action: #selector(addToCartButtonWasTapped), for: .touchUpInside) …
Run Code Online (Sandbox Code Playgroud)

xcode ios swift

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