4Manuals

  • PDF Cloud HOME

点击按钮后如何删除SKNode? Download

    API集成以验证ResearchKit ORKFormItem 转换后的SELECT下拉列表(以ul为单位)不会显示在SAFARI 如何在Swift中将数组的每个元素与下一个数组的每个元素相乘? 从网络加载图像时,“接收到完整的报头之前关闭连接 UITableView动画大小调整问题 ios的到期通知 PDFkit无法快速选择本地文件URL 如何快速设置基本身份验证 如何在Swift4 +中将数组数组作为标准POST方法发送 重新创建当前在IOS 13上的Apple的UI强度滑块

我有UIButton,在点击一次时应添加一个SKShapeNode,在再次点击时应删除相同的节点。我使用了一个计数器来跟踪该按钮被点击了多少次。我已使用spriteScene.addChild(mySKShapeNode)和mySKShapeNode.removeFromParent()添加和删除节点。这是我的代码:

  class myView: UIViewController{

  var spriteScene = SKScene(size: CGSize(width: 500, height: 500))
  var tapCounter: Int = 0

  override func viewDidLoad(){
  super.viewDidLoad()

  . 
  .
  .

    let xPostion:CGFloat = 40
    let yPostion:CGFloat = 108
    let buttonWidth:CGFloat = 100
    let buttonHeight:CGFloat = 45

    button.frame = CGRect(x:xPostion, y:yPostion, width:buttonWidth, height:buttonHeight)

    button.backgroundColor = UIColor.white
    button.setTitle("Tap me!", for: UIControl.State.normal)
    button.tintColor = UIColor.black
    button.addTarget(self, action: #selector(myView.buttonAction(_:)), for: .touchUpInside)
    self.view.addSubview(button)

  .
  .
  . 

    }


 @objc func buttonAction(_ sender:UIButton!){

  let mySKShapeNode = SKShapeNode(rectOf: CGSize(width: 270, height: 15), cornerRadius: CGFloat(5))
      mySKShapeNode.fillColor = UIColor.white
      mySKShapeNode.position = CGPoint(x: 240, y: 100)

 self.tapCounter += 1
 var alternate = tapCounter / 2

   if alternate == 0{

   spriteScene.addChild(mySKShapeNode)

   } else {

   mySKShapeNode.removeFromParent()

   }

  }

 }

通过使用此代码,该节点被添加,但是当我再次点击该按钮时它不会被删除。

2 个答案:

答案 0 :(得分:1)

您需要在函数外部创建skshapenode。这是代码。

from dateutil import parser
from datetime import datetime

datetime_obj = parser.parse(saved_data['created_at'])
readable = datetime.strftime(datetime_obj,'%Y-%m-%d %H:%M:%S')

print (readable)

答案 1 :(得分:1)

错误在于您的IBAction方法

每次都做

let mySKShapeNode = SKShapeNode(rectOf: CGSize(width: 270, height: 15), cornerRadius: CGFloat(5))

您创建了“ mySKShapeNode”的新实例。

如果要删除该节点,则在添加该节点时需要在相同的引用上进行。

为此,您需要将“ mySKShapeNode”设置为全局变量。

如果您不希望将其用作全局变量,则可以通过访问现有的子节点来获取节点,并根据其属性找到该节点,或者为shape节点指定名称,然后可以通过调用

childNode(withName:)



Similar searches
    使用Asp.NET Core 3.1框架将文件上传到服务器时,如何使用IFormFile作为属性? 如何使用Jest或Sinon模拟Node.js中的Postgresql(pg) 我在这里安装了最新版本的nodejs,但是一直都在安装版本4。那么我如何安装最新版本的nodejs? 如何在Policy Center v10中更改本地端口号? 如何保存输入及其字段标签?