用触摸移动事件移动CALayer

时间:2012-08-08 12:33:50

标签: objective-c ios cocoa-touch

我尝试使用触摸事件移动 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对象的 strucnt 的问题。但我无法得到解决方案。

谢谢你的善意。

1 个答案:

答案 0 :(得分:2)

是的,它不可转让。 UIView和它的子类也是如此。

我们无法设置CALayer.bounds.originCALayer.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"