0

タッチイベントでCALayerを動かしてみました。しかし、エラーメッセージがあります。

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    // get touched point
    CGPoint pt = [[touches anyObject] locationInView:self];
    [self.layer convertPoint:pt toLayer:self.layer.superlayer];

    // move piece to the point
    piece.bounds.origin = pt; <- "Expression is not assignable" 
    }
}

この問題の解決策を探したところ、Objective-C オブジェクトの構造体の問題であることがわかりました。しかし、私は解決策を得ることができませんでした。

ご親切にありがとうございます。

4

1 に答える 1

2

ええ、それは割り当て可能ではありません。同じUIViewことがsにも当てはまり、そのサブクラスです。

CALayer.bounds.originまたはCALayer.bounds.sizeプロパティを設定することはできません。私たちにできることは、を作成してまたはCGRectに割り当てることです。CALayer.boundsCALayer.frame

だから、次のようなもの:

// Use frame, not bounds:
piece.frame = CGRectMake(pt.x, pt.y, piece.frame.size.width, piece.frame.size.height); <- "Expression is assignable"
于 2012-08-08T13:10:00.117 に答える