小编pRi*_*BuG的帖子

Swift3:添加带代码的按钮

我正在阅读苹果swift(iOS)文档,但它是为Swift 2编写的,我使用的是Swift 3.我想以编程方式添加一个按钮,但它似乎有一个变化,我找不到如何解决它.

这是Swift 2示例的代码:

import UIKit

class RatingControl: UIView {

// MARK: Initialization

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)

    // Buttons
    let button = UIButton(frame: CGRect(x: 0, y: 0, width: 44, height: 44))
    button.backgroundColor = UIColor.red()
    button.addTarget(self, action: #selector(RatingControl.ratingButtonTapped(_:)), forControlEvents: .TouchDown)
    addSubview(button)
}

override func intrinsicContentSize() -> CGSize {
    return CGSize(width: 240, height: 44)
}

// MARK: Button Action

func ratingButtonTapped(button: UIButton){
    print("Button pressed")
}
}
Run Code Online (Sandbox Code Playgroud)

我在'fix-it'之后做出的唯一改变是在选择器中显示错误:

button.addTarget(self, action: #selector(RatingControl.ratingButtonTapped(button:)), for: .touchDown)
Run Code Online (Sandbox Code Playgroud)

这应该打印"按下按钮",但它没有.有帮助吗?

ios swift2 swift3

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

什么是正确的方法,使用"init"或"didmove"?

语言:Swift 3.0 --- IDE:Xcode 8.0 beta 2 ---项目:iOS游戏(SpriteKit)

我为iOS创建了一款游戏,我知道Apple对接受应用/游戏的规则非常严格.所以我想知道哪种是正确的游戏设置方式.

我从谷歌学到了创建一个新的SpriteKit项目并执行以下设置:

GameViewController.swift中清除viewDidLoad()并添加所有这些:

override func viewDidLoad() {
    super.viewDidLoad()
    let skView = self.view as! SKView

    let scene = GameScene(size: skView.bounds.size)
    scene.scaleMode = .aspectFit

    skView.presentScene(scene)
}
Run Code Online (Sandbox Code Playgroud)

GameScene.swift中删除所有内容并保留此代码:

import SpriteKit

class GameScene: SKScene {
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    override init(size: CGSize) {
        super.init(size: size)
        // add all the code of the game here...
    }

}
Run Code Online (Sandbox Code Playgroud)

并在override init中开发我的游戏

但我认为用init启动游戏实际上是错误的.而正确的方法是使用didMove()方法.那么代码应该写在这里吗?:

override func didMove(to view: SKView) {
    <#code#>
}
Run Code Online (Sandbox Code Playgroud)

有谁知道哪一个是正确的方法?为什么?如果我的方式错了,你能解释一下如何使用didMove方法吗? …

objective-c ios sprite-kit swift swift3

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

标签 统计

ios ×2

swift3 ×2

objective-c ×1

sprite-kit ×1

swift ×1

swift2 ×1