小编Ste*_*eve的帖子

Swift CMMotion - 显示手机的角度

所以我一直在四处寻找,试图了解 Core Motion,但我正在努力寻找任何可以将其降低到初学者水平的东西。与其他主题相比,似乎没有太多内容。

我的目标:让 UILabel 显示手机所处的角度(我相信关于 z 轴),0 度是手机横向时。

从 NSHipster看到了这篇文章,我认为它是正确的,所以我尝试重新创建在本文 .gif 中看到的代码。当手机倾斜时,它保持 UIImageView 垂直......没有运气。我只是不明白所有这些代码片段如何协同工作的大局,我想是因为这是我第一次玩 Core Motion。

我的问题:

1)任何人都可以为我重新创建在该链接中看到的移动 imageView 以便我可以研究它是如何协同工作的(最好是整个 viewController.swift 文件)。

或者更好

2)将一些代码放在一起,以显示手机所处的角度。

让我知道我是否可以更具体。非常感谢!

更新:好吧,我让自己感到惊讶并设法解决了这个问题,然后来到这里发布它,TJ Shae 也刚刚发布了答案哈哈......花了很多时间,但我现在正在路上。

    import UIKit
    import CoreMotion

    class AngleGaugeViewController: UIViewController {

@IBOutlet weak var rotX: UILabel!
@IBOutlet weak var rotY: UILabel!
@IBOutlet weak var rotZ: UILabel!
@IBOutlet weak var theAngle: UILabel!

@IBOutlet weak var imageView: UIImageView!


let manager = CMMotionManager()

override func viewDidLoad() {
    super.viewDidLoad()


    manager.gyroUpdateInterval = 0.1 …
Run Code Online (Sandbox Code Playgroud)

ios core-motion swift2

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

调整SKSpriteNode的大小而不会降低质量

我有一个SKSpiteNode:

private var btnSound = SKSpriteNode(imageNamed: "btnSound")
Run Code Online (Sandbox Code Playgroud)

现在我在Adobe Illustrator中制作了这个大小为2048x2048像素的图像(真的过度杀伤),所以它有很好的分辨率.我的问题是当我设置图像的大小时,其中的线条呈锯齿状或锯齿状......不平滑.

这是我的大小:

        btnSound.position = CGPoint(x: self.frame.width * 1 / 5 , y: self.frame.height * (5.2 / 8))
        btnSound.size.width = self.frame.width * 1 / 7
        btnSound.size.height = btnSound.size.width
        btnSound.zPosition = 1
        self.addChild(btnSound)
Run Code Online (Sandbox Code Playgroud)

这是在Illustrator中的图像(截图)图片这是应用程序中的图像(截图) 图片

我尝试过的事情:

  • 使图像PDF
  • 使图像PNG
  • 制作PNG 72 DPI,使其达到300 DPI
  • 在模拟器/设备上运行(iPhone7)
  • btnSound.setScale(preDetermineScale)
  • 使用以下函数,虽然我不熟悉UIGraphicsBeginImageContext方法.这张照片模糊不清.下面是代码和结果图像:

    func resizeImage(image: UIImage, newWidth: CGFloat) -> UIImage? {
    
    let scale = newWidth / image.size.width
    let newHeight = image.size.height * scale
    UIGraphicsBeginImageContext(CGSize(width: newWidth, height: newHeight))
    image.draw(in: CGRect(x: 0, y: 0, …
    Run Code Online (Sandbox Code Playgroud)

ios sprite-kit swift3

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

VSCode 自动完成 python 的字符串参数

我一直在寻找是否可以在 VSCode 中为 Python 创建相同的行为来显示字符串参数输入,就像在 JavaScript 中使用 jsdoc 一样。

使用 JSDoc 的 JavaScript 示例:

/**
* @method someMethod
* @description A special method.
* @param { "option1" | "option2" } param1 Choose an option.
*/
function someMethod(param1) {
    console.log(param1);
}
Run Code Online (Sandbox Code Playgroud)

因此,在调用该方法时,VSCode 将为 param1 提供自动完成选项。

在此输入图像描述

所以我正在寻找一个Python等效项,最好使用谷歌文档字符串格式:

def some_method(param1: str) -> None:
    """A special method.

    Args:
        param1 (str): Choose an option. # HOW CAN WE ADD INTELLISENSE OPTIONS HERE??
    
    """
    print(param1)
Run Code Online (Sandbox Code Playgroud)

python docstring visual-studio-code

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

缩放 SCNNode 及其子节点

我正在制作一个简单的测量应用程序。目前,我将球体放置在SCNNodes该位置周围,并且节点之间会出现一个标签,显示从节点 1 到节点 2 的线的长度。

这是标签的创建方式:

func addLabel() {
    let plane = SCNPlane(width: 0.07, height: 0.02)
    plane.cornerRadius = plane.height / 10

    let sks = SKScene(size: CGSize(width: plane.width * 10e3, height: plane.height * 10e3))
    sks.backgroundColor = UIColor(red: 0.1, green: 0.1, blue: 0.1, alpha: 0.7)

    currentLbl = SKLabelNode(text: "")
    currentLbl.fontSize = 110
    currentLbl.fontName = "Helvetica"
    currentLbl.verticalAlignmentMode = .center
    currentLbl.position = CGPoint(x: sks.frame.midX, y: sks.frame.midY)
    currentLbl.fontColor = .white

    sks.addChild(currentLbl)

    let material = SCNMaterial()
    material.isDoubleSided = true
    material.diffuse.contents = sks
    material.diffuse.contentsTransform = …
Run Code Online (Sandbox Code Playgroud)

swift arkit

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