UITouch


継承:NSObject(Class)

従属:NSObject(Protocol)

フレームワーク: iOS 2.0 以降の UIKit。関連情報...


UITouch オブジェクトは、特定のイベントのために画面上の指の位置、大きさ、動き、そして力を表します。タッチの force (力) は 3D Touch や Apple Pencil をサポートするデバイス上で iOS 9 以降で利用可能です。


イベント処理のためのレスポンダオブジェクトに渡された UIEvent オブジェクトを通してタッチオブジェクトにアクセスして下さい。タッチオブジェクトは、以下のアクセッサを含んでいます。


タッチオブジェクトはまた、タッチが発生したときを示すタイムスタンプを含み、ユーザーが画面をタップした回数を表す整数、およびタッチが始まり、移動し、または終了し、またはシステムがタッチをキャンセルしたかどうかを説明する定数の形式でタッチの相を示します。


スワイプの操作方法を学習するには、iOS 用ガイドイベント処理 内の スワイプとドラッグジェスチャーの取り扱い をお読み下さい。


タッチオブジェクトは、マルチタッチシーケンス全体を通じて持続します。イベントを処理するときにタッチオブジェクトは決して保持してはいけません。あるタッチ相から別のタッチについての情報を保持する必要がある場合は、タッチからの情報をコピーして下さい。


タッチの gestureRecognizers プロパティは、現在タッチを処理しているジェスチャー認識機能を含んでいます。各ジェスチャ認識機能は UIGestureRecognizer の具象サブクラスのインスタンスです。


タスク


タッチの場所を取得


- locationInView:


与えられたビューの座標系における受信者の現在位置を返します。


宣言

<< SWIFT >>

func locationInView(_ view: UIView?) -> CGPoint


<< OBJECTIVE-C >>

- (CGPoint)locationInView:(UIView *)view


パラメーター

viewタッチが起こった希望の座標系内のビュー・オブジェクト。タッチを処理しているカスタムビューは、独自の座標系でタッチ位置を取得するため、self を指定できます。ウィンドウの座標内のタッチ位置を取得するために nil を渡して下さい。

戻り値

view 内の受信者の位置を指定するポイント。


議論

このメソッドは、指定したビューの座標系内の UITouch オブジェクトの現在位置を返します。タッチオブジェクトが、あるビューから別のビューに転送されてきた可能性があるため、このメソッドは指定されたビューの座標系へのタッチ位置の全ての必要な変換を行います。


利用可能

iOS X 2.0 以降で利用可能。


以下も見よ

– previousLocationInView:



– previousLocationInView:


与えられたビューの座標系内の受信者の以前の位置を返します。


宣言

<< SWIFT >>

func previousLocationInView(_ view: UIView?) -> CGPoint


<< OBJECTIVE-C >>

- (CGPoint)previousLocationInView:(UIView *)view


パラメーター

viewタッチが起こった希望の座標系内のビュー・オブジェクト。タッチを処理しているカスタムビューは、独自の座標系でタッチ位置を取得するため、self を指定できます。ウィンドウの座標内のタッチ位置を取得するために nil を渡して下さい。

戻り値

このメソッドは、指定したビューの座標系内の UITouch オブジェクトの以前の位置を返します。タッチオブジェクトが、あるビューから別のビューに転送されてきた可能性があるため、このメソッドは指定されたビューの座標系へのタッチ位置の全ての必要な変換を行います。


利用可能

iOS X 2.0 以降で利用可能。


以下も見よ

– locationInView:



view プロパティ


もし存在すれば、タッチが配信されているビュー。(読み取り専用)


宣言

<< SWIFT >>

var view: UIView? { get }


<< OBJECTIVE-C >>

@property(nonatomic, readonly, strong) UIView *view


議論

このプロパティの値は、必ずしもタッチが起こっている現在のビューではなく、タッチが配信されているビューオブジェクトへのものである。例えば、ジェスチャー認識機はタッチを認識するときに、全てのビューがタッチを受けないため、このプロパティは nil です。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

window プロパティ



window プロパティ


タッチが最初にその中で発生すしたウィンドウ。(読み取り専用)


宣言

<< SWIFT >>

var window: UIWindow? { get }


<< OBJECTIVE-C >>

@property(nonatomic, readonly, strong) UIWindow *window


議論

プロパティの値はタッチが最初にその中で発生したウィンドウオブジェクトです。このオブジェクトは、タッチが現在あるウィンドウではないかもしれません。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

view プロパティ



majorRadius プロパティ


タッチの(ポイント単位の) 半径。(読み取り専用)


宣言

<< SWIFT >>

var majorRadius: CGFloat { get }


<< OBJECTIVE-C >>

@property(nonatomic, readonly) CGFloat majorRadius


議論

ハードウェアによって報告されたタッチの大きさを決定するために、このプロパティの値を使用してください。この値は、サイズの近似であり、majorRadiusTolerance プロパティで指定された量だけ変化することができます。


利用可能

iOS 8.0 以降で利用可能。





majorRadiusTolerance プロパティ


タッチ半径の(ポイントでの) 許容範囲。(読み取り専用)


宣言

<< SWIFT >>

var majorRadiusTolerance: CGFloat { get }


<< OBJECTIVE-C >>

@property(nonatomic, readonly) CGFloat majorRadiusTolerance


議論

この値は、majorRadius プロパティ内の値の精度を決定します。最大タッチ半径を取得するためには、半径にこの値を加算して下さい。最小タッチ半径を取得するには値を減算して下さい。


利用可能

iOS 8.0 以降で利用可能。





- preciseLocationInView:


利用可能なときに、タッチの正確な位置を返します。


宣言

<< SWIFT >>

func preciseLocationInView(_ view: UIView?) -> CGPoint


<< OBJECTIVE-C >>

- (CGPoint)preciseLocationInView:(UIView *)view


パラメーター

viewタッチを含むビュー。

戻り値

タッチの正確な位置。


議論

タッチ(利用可能な時) の追加の精度を得るために、このメソッドを使用できますが、ヒットテストのためには使用できません。いくつかの場合、ヒットテストは、タッチがビュー内にあることを示せますが、より正確な位置は、タッチが実際にはビューの外にあることを示すことがあります。


利用可能

iOS 9.1 以降で利用可能。





- precisePreviousLocationInView:


利用可能なときに、タッチの正確な以前の位置を返します。


宣言

<< SWIFT >>

func precisePreviousLocationInView(_ view: UIView?) -> CGPoint


<< OBJECTIVE-C >>

- (CGPoint)precisePreviousLocationInView:(UIView *)view


パラメーター

viewタッチを含んでいたビュー。

戻り値

タッチの正確な以前の位置。


議論

タッチの以前の位置(利用可能な時) の追加の精度を得るために、このメソッドを使用できますが、ヒットテストのためには使用できません。いくつかの場合、ヒットテストは、タッチがビュー内にあることを示せますが、より正確な位置は、タッチが実際にはビューの外にあったことを示すことがあります。


利用可能

iOS 9.1 以降で利用可能。





タッチ属性の取得


tapCount プロパティ


指が、この与えられたタッチにタップされた回数。(読み取り専用)


宣言

<< SWIFT >>

var tapCount: Int { get }


<< OBJECTIVE-C >>

@property(nonatomic, readonly) NSUInteger tapCount


議論

このプロパティの値は、ユーザーが事前に定義された期間内に特定のポイントで自分の指をタップした回数を示す整数です。ユーザーがシングルタップ、ダブルタップ、あるいはトリプルタップさえも特定のビューやウィンドウで起こしたかどうかを確認したい場合は、このメソッドが返す値を評価する必要があります。


利用可能

iOS 2.0 以降で利用可能。





timestamp プロパティ


タッチが発生したか、それが最後に変異したときの時間。(読み取り専用)


宣言

<< SWIFT >>

var timestamp: NSTimeInterval { get }


<< OBJECTIVE-C >>

@property(nonatomic, readonly) NSTimeInterval timestamp


議論

システムは、タッチが起こったかまたは最後に変更された時に始まり、このプロパティの値は、秒単位の時間です。この属性の初期値を UITouch インスタンスの後続のタイムスタンプ値保存、比較でき、移動速度は、スワイプされている場合は、タッチの継続時間をそれで決定できます。ブート以来の時間の値の定義については、NSProcessInfo クラスの systemUptime メソッドの説明を参照してください。


利用可能

iOS 2.0 以降で利用可能。





type プロパティ


タッチのタイプ。


宣言

<< SWIFT >>

var type: UITouchType { get }


<< OBJECTIVE-C >>

@property(nonatomic, readonly) UITouchType type


議論

タッチタイプの完全なリストについては、タッチタイプ を参照してください。


利用可能

iOS 9.0 以降で利用可能。





phase プロパティ


タッチの相。(読み取り専用)


宣言

<< SWIFT >>

var phase: UITouchPhase { get }


<< OBJECTIVE-C >>

@property(nonatomic, readonly) UITouchPhase phase


議論

プロパティ値はタッチが、始まった、移動した、終了した、またはキャンセルされたかどうかを示す定数です。UITouchPhase の取り得る値の説明については、タッチ相 を参照してください。


利用可能

iOS 2.0 以降で利用可能。





force プロパティ


タッチの力であり、1.0 の値は平均的なタッチの力を表します(ユーザー固有ではなく、システムによってあらかじめ決定されている)。(読み取り専用)


宣言

<< SWIFT >>

var force: CGFloat { get }


<< OBJECTIVE-C >>

@property(nonatomic, readonly) CGFloat force


議論

このプロパティは、3D Touch や Apple Pencil をサポートするデバイスで利用可能です。デバイスが、3D タッチをサポートしているか、実行時にチェックするには、特徴環境でアプリ内の任意のオブジェクトの特徴コレクションの UIForceTouchCapability プロパティの値を読み取って下さい。


Apple Pencil で報告されている力は、pencil の軸に沿って測定されることに注意してください。デバイスに対して垂直な力が必要な場合は、altitudeAngle の値を使用してこの値を計算する必要があります。


利用可能

iOS 9.0 以降で利用可能。


以下も見よ

maximumPossibleForce




maximumPossibleForce プロパティ


タッチの、可能な最大の力。(読み取り専用)


宣言

<< SWIFT >>

var maximumPossibleForce: CGFloat { get }


<< OBJECTIVE-C >>

@property(nonatomic, readonly) CGFloat maximumPossibleForce


議論

このプロパティの値は、force プロパティの値の広いダイナミックレンジを提供するのに十分に高いです。


このプロパティは、3D Touch や Apple Pencil をサポートするデバイスで利用可能です。デバイスが、3D タッチをサポートしているか、実行時にチェックするには、特徴環境でアプリ内の任意のオブジェクトのの形質コレクションの UIForceTouchCapability プロパティの値を読み取って下さい。


利用可能

iOS 9.0 以降で利用可能。


以下も見よ

force プロパティ




altitudeAngle プロパティ


スタイラスの(ラジアンでの) 高度。(読み取り専用)


宣言

<< SWIFT >>

var altitudeAngle: CGFloat { get }


<< OBJECTIVE-C >>

@property(nonatomic, readonly) CGFloat altitudeAngle


議論

0 ラジアンの値は、スタイラスが表面に平行であることを示します。スタイラスが表面に垂直である場合、altitudeAngle は、Pi/2 です。


利用可能

iOS 9.1 以降で利用可能。





- azimuthAngleInView:


スタイラスの(ラジアンで) 方位角を返します。


宣言

<< SWIFT >>

func azimuthAngleInView(_ view: UIView?) -> CGFloat


<< OBJECTIVE-C >>

- (CGFloat)azimuthAngleInView:(UIView *)view


パラメーター

viewスタイラスのタッチを含むビュー。タッチのウィンドウへの相対方位角を得るためには nil を渡して下さい。

戻り値

ラジアンでのスタイラスの方位角。


議論

0 ラジアンの値は、正の x 軸に沿う事を示す。方位角は、ユーザがスタイラスのキャップ端部(すなわち、スタイラス先端の反対側の端) を揺り動かして時計回りに増えます。(方位単位ベクトルとは対照的に) 方位角を得るのは、より高価になることに留意されたいが、それはまた、より便利です。


利用可能

iOS 9.1 以降で利用可能。


以下も見よ

– azimuthUnitVectorInView:




– azimuthUnitVectorInView:


スタイラスの方位角の方向を指す単位ベクトルを返します。


宣言

<< SWIFT >>

func azimuthUnitVectorInView(_ view: UIView?) -> CGVector


<< OBJECTIVE-C >>

- (CGVector)azimuthUnitVectorInView:(UIView *)view


パラメーター

viwスタイラスのタッチを含むビュー。タッチのウィンドウへの相対方位角の単位ベクトルを取得するには nil を渡して下さい。

戻り値

スタイラスの方位角の方向を指す単位ベクトル。


議論

これは、(方位角と比べると) 方位角単位ベクトルを取得するには、より安価だし、変換行列を作成している場合、単位ベクトルは、より有用です。


利用可能

iOS 9.1 以降で利用可能。


以下も見よ





estimatedProperties プロパティ


更新されるタッチプロパティのセット。(読み取り専用)


宣言

<< SWIFT >>

var estimatedProperties: UITouchProperties { get }


<< OBJECTIVE-C >>

@property(nonatomic, readonly) UITouchProperties estimatedProperties


議論

このプロパティの値は タッチプロパティ によって与えられるタッチプロパティのビットマスクを含んでいます。


利用可能

iOS 9.1 以降で利用可能。





estimationUpdateIndex プロパティ


更新されたタッチをオリジナルのタッチで関連付けることができるインデックス番号。(読み取り専用)


宣言

<< SWIFT >>

var estimationUpdateIndex: NSNumber? { get }


<< OBJECTIVE-C >>

@property(nonatomic, readonly) NSNumber *estimationUpdateIndex


議論

このプロパティの値は、推定プロパティを含む各タッチで単調に増加します。タッチの更新を適切なタッチに適用することを確認するために、このプロパティを使用できます。オブジェクトが推定または更新されたプロパティのいずれかを含んでいないときには、このプロパティの値は nil です。


利用可能

iOS 9.1 以降で利用可能。


以下も見よ

estimatedProperties プロパティ




estimatedPropertiesExpectingUpdates プロパティ


将来的になされる更新を期待するタッチプロパティのセット。


宣言

<< SWIFT >>

var estimatedPropertiesExpectingUpdates: UITouchProperties { get }


<< OBJECTIVE-C >>

@property(nonatomic, readonly) UITouchProperties estimatedPropertiesExpectingUpdates


議論

更新が推定プロパティに何も期待されていない場合は、現在の値は、最終的な推定値です。


利用可能

iOS 9.1 以降で利用可能。


以下も見よ

estimatedProperties プロパティ




タッチオブジェクトのジェスチャー認識装置の取得


gestureRecognizers プロパティ


タッチオブジェクトを受信しているジェスチャー認識装置。(読み取り専用)


宣言

<< SWIFT >>

var gestureRecognizers: [UIGestureRecognizer]? { get }


<< OBJECTIVE-C >>

@property(nonatomic, readonly, copy) NSArray <UIGestureRecognizer *> *gestureRecognizers


議論

配列内のオブジェクトは、抽象基本クラス UIGestureRecognizer のサブクラスのインスタンスです。現在タッチオブジェクトを受けているジェスチャー認識装置がない場合、このプロパティは空の配列を保持します。


利用可能

iOS 3.2 以降で利用可能。





Sprite Kit でのタッチイベントの作業


locationInNode:


与えられたノードの座標系における受信者の現在位置を返します。


宣言

<< SWIFT >>

func locationInNode(_ node: SKNode) -> CGPoint


<< OBJECTIVE-C >>

- (CGPoint)locationInNode:(SKNode *)node


パラメーター

nodeタッチイベントを受け取ったウィンドウに表示されるシーンの子孫であるノード。

戻り値

ノードの座標系におけるタッチの位置。


Import 文

<< OBJECTIVE-C >>

@import SpriteKit;


<< SWIFT >>

import SpriteKit


利用可能

iOS 7.0 以降で利用可能。





- previousLocationInNode:


与えられたノードの座標系における受信者の以前の位置を返します。


宣言

<< SWIFT >>

func previousLocationInNode(_ node: SKNode) -> CGPoint


<< OBJECTIVE-C >>

- (CGPoint)previousLocationInNode:(SKNode *)node


パラメーター

nodeタッチイベントを受け取ったウィンドウ内に表示されるシーンの子孫であるノード。

戻り値

ノードの座標系におけるタッチの位置。


Import 文

<< OBJECTIVE-C >>

@import SpriteKit;


<< SWIFT >>

import SpriteKit


利用可能

iOS 7.0 以降で利用可能。





定数

UIForceTouchCapability


力のタッチが利用可能かどうかを示す値。


宣言

<< SWIFT >>

enum UIForceTouchCapability : Int {
    case Unknown
    case Unavailable
    case Available
}


<< OBJECTIVE-C >>

typedef enum {     UIForceTouchCapabilityUnknown = 0,
   UIForceTouchCapabilityUnavailable = 1,
   UIForceTouchCapabilityAvailable = 2 } UIForceTouchCapability;


定数

  • UIForceTouchCapabilityUnknown

  • 力のタッチの利用可能性を決定できません。


    iOS 9.0 以降で利用可能。


  • UIForceTouchCapabilityUnavailable

  • 力のタッチは使用できません。


    iOS 9.0 以降で利用可能。


  • UIForceTouchCapabilityAvailable

  • 力のタッチが利用可能です。


    iOS 9.0 以降で利用可能。


    Import 文

    << OBJECTIVE-C >>

    @import UIKit;


    << SWIFT >>

    import UIKit


    利用可能

    iOS 7.0 以降で利用可能。





    UITouchType


    受信したタッチの種類。


    宣言

    << SWIFT >>

    enum UITouchType : Int {
        case Direct
        case Indirect
        case Stylus
    }


    << OBJECTIVE-C >>

    typedef enum {     UITouchTypeDirect,
       UITouchTypeIndirect,
       UITouchTypeStylus } UITouchType;


    定数

  • UITouchTypeDirect

  • 画面上での指からの直接のタッチ。


    iOS 9.0 以降で利用可能。


  • UITouchTypeIndirect

  • 画面上でない、間接的なタッチ。


    iOS 9.0 以降で利用可能。


  • UITouchTypeStylus

  • スタイラスからのタッチ。


    iOS 9.1 以降で利用可能。


    Import 文

    << OBJECTIVE-C >>

    @import UIKit;


    << SWIFT >>

    import UIKit


    利用可能

    iOS 9.1 以降で利用可能。





    UITouchProperties


    更新されるかもしれない、タッチプロパティのビットマスク。


    宣言

    << SWIFT >>

    struct UITouchProperties : OptionSetType {
        init(rawValue rawValue: Int)
        static var Force: UITouchProperties { get }
        static var Azimuth: UITouchProperties { get }
        static var Altitude: UITouchProperties { get }
        static var Location: UITouchProperties { get }
    }


    << OBJECTIVE-C >>

    typedef enum {
       UITouchPropertyForce = (1UL << 0),
       UITouchPropertyAzimuth = (1UL << 1),
       UITouchPropertyAltitude = (1UL << 2),
       UITouchPropertyLocation = (1UL << 3),
    } UITouchProperties;


    定数

  • UITouchPropertyForce
  • ビットマスクで、力を表すタッチプロパティ。


    iOS 9.1 以降で利用可能。


  • UITouchPropertyAzimuth
  • ビットマスクで、方位角を表すタッチプロパティ。


    iOS 9.1 以降で利用可能。


  • UITouchPropertyAltitude
  • ビットマスクで、高度を表すタッチプロパティ。


    iOS 9.1 以降で利用可能。


  • UITouchPropertyLocation
  • ビットマスクで位置を表すタッチプロパティ。


    iOS 9.1 以降で利用可能。


    Import 文

    << OBJECTIVE-C >>

    @import UIKit;


    << SWIFT >>

    import UIKit


    利用可能

    iOS 9.1 以降で利用可能。





    UITouchPhase


    指でのタッチの相。


    宣言

    << SWIFT >>

    enum UITouchPhase : Int {
        case Began
        case Moved
        case Stationary
        case Ended
        case Cancelled
    }


    << OBJECTIVE-C >>

    typedef enum {
       UITouchPhaseBegan,
       UITouchPhaseMoved,
       UITouchPhaseStationary,
       UITouchPhaseEnded,
       UITouchPhaseCancelled,
    } UITouchPhase;


    定数

  • UITouchPhaseBegan
  • スクリーン上で与えられたイベントで指がタッチしました。


    iOS 2.0 以降で利用可能。


  • UITouchPhaseMoved
  • スクリーン上で与えられたイベントで指が移動しました。


    iOS 2.0 以降で利用可能。


  • UITouchPhaseStationary
  • 指が表面に触れているが、前回のイベント以来、移動していません。


    iOS 2.0 以降で利用可能。


  • UITouchPhaseEnded
  • 与えられたイベントの指がスクリーンから持ち上がりました。


    iOS 2.0 以降で利用可能。


  • UITouchPhaseCancelled
  • (例えば)、ユーザーが自分の顔に対してデバイスを移動させたときのように、タッチのトラッキングをシステムがキャンセルしました。


    議論

    UITouch インスタンスの相は、イベントの途中でも、特定の順序で変化します。phase プロパティを通してこの値にアクセスして下さい。


    Import 文

    << OBJECTIVE-C >>

    @import UIKit;


    << SWIFT >>

    import UIKit


    利用可能

    iOS 2.0 以降で利用可能。





    次の章
    目次
    Xcode 9 の新機能
    NSObject(class)

  • UITouch
  • 概観
  • タスク
  • タッチの場所を取得
  • locationInView:
    previousLocationInView:
    view プロパティ
    window プロパティ
    majorRadius プロパティ
    majorRadiusTolerance プロパティ
    preciseLocationInView:
    precisePreviousLocationInView:
  • タッチ属性の取得
  • tapCount プロパティ
    timestamp プロパティ
    type プロパティ
    phase プロパティ
    force プロパティ
    maximumPossibleForce プロパティ
    altitudeAngle プロパティ
    azimuthAngleInView:
    azimuthUnitVectorInView:
    estimatedProperties プロパティ
    estimationUpdateIndex プロパティ
    estimatedPropertiesExpectingUpdates プロパティ
  • タッチオブジェクトのジェスチャー認識装置の取得
  • gestureRecognizers プロパティ
  • Sprite Kit でのタッチイベントの作業
  • locationInNode:
    previousLocationInNode:
  • 定数
  • UIForceTouchCapability
    UITouchType
    UITouchProperties
    UITouchPhase
    文書改定履歴












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)












    トップへ(UITouch)