1

Apple 開発者ポータルから DynamicsCatalog.xcodeproj をダウンロードしただけですが、次のエラーが発生します。

'UIAttachmentBejavior' の目に見える @interface がないため、セレクター initwiitem が宣言されます

この行で:

UIAttachmentBehavior *attachmentBehavior = [[UIAttachmentBehavior alloc] initWithItem:self.square1 point:attachmentPoint attachedToAnchor:squareCenterPoint];

APLAttachmentsViewController.m 内

これはその行のコンテキストです:

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIDynamicAnimator* animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view];
    UICollisionBehavior* collisionBehavior = [[UICollisionBehavior alloc] initWithItems:@[self.square1]];

    CGPoint squareCenterPoint = CGPointMake(self.square1.center.x, self.square1.center.y - 100.0);
    CGPoint attachmentPoint = CGPointMake(-25.0, -25.0);
    /*
     By default, an attachment behavior uses the center of a view. By using a small offset, we get a more interesting effect which will cause the view to have rotation movement when dragging the attachment.
     */
    UIAttachmentBehavior *attachmentBehavior = [[UIAttachmentBehavior alloc] initWithItem:self.square1 point:attachmentPoint attachedToAnchor:squareCenterPoint];

    collisionBehavior.translatesReferenceBoundsIntoBoundary = YES;

    // Show visually the attachment points
    self.redSquare.center = attachmentBehavior.anchorPoint;
    self.blueSquare.center = CGPointMake(25.0, 25.0);

    [animator addBehavior:attachmentBehavior];
    self.animator = animator;

    self.attachmentBehavior = attachmentBehavior;
}

このデモコードを修正する理由や方法を知っている人はいますか?

4

2 に答える 2

1

UIAttachmentBehaviorのクラス参照を見てください:initWithItem:point:attachedToAnchor:は宣言されていません。ある時点で削除されたようです。他の初期化子のいずれかを使用します。

– initWithItem:attachedToAnchor:
– initWithItem:attachedToItem:
– initWithItem:offsetFromCenter:attachedToAnchor:
– initWithItem:offsetFromCenter:attachedToItem:offsetFromCenter:

使用しているセレクターは、実際には名前が変更されていますinitWithItem:offsetFromCenter:attachedToAnchor:

于 2013-09-26T02:28:09.010 に答える
0

サンプルコードは、iOS 7 の最終ビルドの前に置き換えられたセレクターを使用していたようです。置き換えられたセレクターはinitWithItem:offsetFromCenter:attachedToAnchor:. さらに、そのメソッドはUIOffset(の代わりにCGPoint) 2 番目のパラメーターとして受け取ります。

使用したコードは次のとおりです。

UIOffset attachmentOffset = UIOffsetMake(-25, -25);
UIAttachmentBehavior *attachmentBehavior = [[UIAttachmentBehavior alloc] initWithItem:self.square1 offsetFromCenter:attachmentOffset attachedToAnchor:squareCenterPoint];

attachmentOffsetを置き換えますattachmentPoint

于 2014-05-15T17:52:11.430 に答える