UIDynamicItem
継承:なし
フレームワーク: iOS 7.0 以降の UIKit。関連情報...
概観
UIKit のダイナミクスに参加するため適格なカスタムオブジェクトを作るには、オブジェクトのクラスで UIDynamicItem プロトコルを採用します。
iOS 7 以降では、UIView と UICollectionViewLayoutAttributes クラスは、このプロトコルを実装しています。
タスク
ダイナミックなアニメーションに参加
bounds 必須プロパティ
ダイナミックなアニメ制作者がダイナミックな項目の境界を必要とするときに呼び出されます。(読み取り専用)
宣言
<< SWIFT >>
var bounds: CGRect { get } << OBJECTIVE-C >> @property(nonatomic, readonly) CGRect bounds
利用可能
iOS 7.0 以降で利用可能。
center 必須プロパティ
ダイナミックな項目の中心点。
宣言
<< SWIFT >>
var center: CGPoint { get set } << OBJECTIVE-C >> @property(nonatomic, readwrite) CGPoint center
議論
ダイナミックなアニメ制作者(項目が関連付けられている) は、このメソッドが項目の新しい中心点を計算した時、このメソッドを呼び出します。
利用可能
iOS 7.0 以降で利用可能。
transform 必須プロパティ
ダイナミックな項目の回転。
宣言
<< SWIFT >>
var transform: CGAffineTransform { get set } << OBJECTIVE-C >> @property(nonatomic, readwrite) CGAffineTransform transform
議論
UIKit Dynamics は、このプロパティの回転値だけを使います。
ダイナミックなアニメ制作者(アイテムが関連付けられている) は、このメソッドが項目の新しい回転値を計算した時、このメソッドを呼び出します。
利用可能
iOS 7.0 以降で利用可能。
collisionBoundsType プロパティ
項目に関連付けられた衝突境界の型。(読み取り専用)
宣言
<< SWIFT >>
optional var collisionBoundsType: UIDynamicItemCollisionBoundsType { get } << OBJECTIVE-C >> @property(nonatomic, readonly) UIDynamicItemCollisionBoundsType collisionBoundsType
議論
ダイナミクスシステムは、動的な項目との衝突を評価する方法を決定するために、このプロパティを使用します。長方形や楕円形の境界が項目の bounds プロパティで定義されています。カスタム衝突境界の場合、境界の形状は collisionBoundingPath プロパティにあります。
動的な項目にこのプロパティを実装し、その値を UIDynamicItemCollisionBoundsTypePath に設定する場合は、collisionBoundingPath プロパティを実装し、有効なパスを提供しなければなりません。これを怠ると、プログラマのエラーになります。
このプロパティのデフォルト値は UIDynamicItemCollisionBoundsTypeRectangle です。
利用可能
iOS 9.0 以降で利用可能。
collisionBoundingPath プロパティ
衝突境界に使用する path ベースの形状。(読み取り専用)
宣言
optional var collisionBoundingPath: UIBezierPath { get } << OBJECTIVE-C >> @property(nonatomic, readonly) UIBezierPath *collisionBoundingPath
議論
collisionBoundsType プロパティが UIDynamicItemCollisionBoundsTypePath である場合、このプロパティのオブジェクトは衝突境界として使用されます。あなたのダイナミックな項目が collisionBoundsType プロパティを実装する場合、このプロパティも実装しなければなりません。
作成したパスオブジェクトは、反時計回りまたは時計回りでの凸多角形を表さなければならず、パス自体交差してはなりません。パスの(0、0) の点は、対応するダイナミックな項目の center の点に位置する必要があります。center の点がパスの原点と一致しない場合、期待どおりには衝突動作は動作しない可能性があります。
利用可能
iOS 9.0 以降で利用可能。
定数
UIDynamicItemCollisionBoundsType
項目の衝突境界の形を示す定数。
宣言
<< SWIFT >>
enum UIDynamicItemCollisionBoundsType : UInt {
case Rectangle
case Ellipse
case Path
}
<< OBJECTIVE-C >>
typedef enum UIDynamicItemCollisionBoundsType : NSUInteger {
UIDynamicItemCollisionBoundsTypeRectangle,
UIDynamicItemCollisionBoundsTypeEllipse , // radii will be determined from the items bounds width,
height
UIDynamicItemCollisionBoundsTypePath
} UIDynamicItemCollisionBoundsType;
定数
- UIDynamicItemCollisionBoundsTypeRectangle
- UIDynamicItemCollisionBoundsTypeEllipse
- UIDynamicItemCollisionBoundsTypePath
長方形の衝突境界。
iOS 9.0 以降で利用可能。
楕円形の衝突境界。楕円の形状は、項目の bounds プロパティの幅と高さによって決定されます。
iOS 9.0 以降で利用可能。
path ベースの衝突境界。この型の場合、形状は項目の collisionBoundingPath プロパティに格納されている UIBezierPath オブジェクトです。パス自体の構成法については、そのプロパティの説明を参照してください。
iOS 9.0 以降で利用可能。
Import 文
<< OBJECTIVE-C >>
@import UIKit;
<< SWIFT >>
import UIKit利用可能
iOS 9.0 以降で利用可能。
次の章