[iOS 11][小ネタ] UIGestureRecognizer にデバッグ用の名前を付ける

2017.09.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

名前を付けよう

iOS 11 から、開発中のデバッグ用として UIGestureRecognizer に識別用の文字列を割り当てられるようになりました。
新たに追加されたプロパティ name を使用することによって、別の UIGestureRecognizer と区別することができます。

@available(iOS 11.0, *)
open var name: String? // name for debugging to appear in logging

サンプルコード

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let tapGestureRecognizer = UITapGestureRecognizer(target: self,
                                                          action: #selector(tapped(_:)))
        tapGestureRecognizer.name = "K-2SO"
        self.view.addGestureRecognizer(tapGestureRecognizer)
    }

    @objc func tapped(_ sender: UITapGestureRecognizer) {
        if let name = sender.name {
            print("name = \(name)")
        } else {
            print("no name.")
        }
    }
}

このプログラムを実行すると、画面をタップするたびに以下のログが出力されます。

name = K-2SO

1 つのビューに複数の UIGestureRecognizer を設定している時などに使えそうですね。

リンク

ミレニアム・ファルコン製作日記 #89

89 号 表紙

mfd_89_1

パーツ

mfd_89_2

mfd_89_3

mfd_89_4

成果

mfd_89_5

mfd_89_6

mfd_89_7

今回の作業は以下の 3 つでした。

  • 砲塔ベイを取り付ける
  • 内部ディテールを取り付ける
  • 内部支持具を取り付ける

下部砲塔ベイを取り付け、主船倉、右舷通路、通路チューブを船体下部に仮留めしました。
写真からはわかりませんが、下部の砲塔に窓ガラスをかぶせ、その上に砲塔ベイを接着しています。
ここはエピソード 7 でフィンが操縦していたところです。
また主船倉や通路に支持台を取り付け、船内で水平になるように調整しました。
船体内部の組み立てがはじまり、いよいよ佳境といったところですね。
もう少しで完成してしまうと思うと、嬉しいやら悲しいやら。

それではまた次回。

May the Force be with you!