所以我一直在四处寻找,试图了解 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) 我有一个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中的图像(截图)这是应用程序中的图像(截图)
我尝试过的事情:
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)我一直在寻找是否可以在 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) 我正在制作一个简单的测量应用程序。目前,我将球体放置在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) ios ×2
arkit ×1
core-motion ×1
docstring ×1
python ×1
sprite-kit ×1
swift ×1
swift2 ×1
swift3 ×1