2012-08-07 23 views
0

將圖像作爲子視圖添加到另一個UIImageView時,我正在爲正在編輯的新圖像添加一個品牌(移動,放大/縮小,旋轉)爲什麼我的品牌不遵循我的形象?

雖然我不能讓商品保持連接到新圖像的框架。 當圖像被添加時,它最初是連接的,但一旦移動,商品就會遠離圖像框架。

這裏是我的代碼:

**viewDidLoad:** 
if (!_marque) 
{ 
    _marque = [[CAShapeLayer layer] retain]; 
    _marque.fillColor = [[UIColor clearColor] CGColor]; 
    _marque.strokeColor = [[UIColor cyanColor] CGColor]; 
    _marque.lineWidth = 1.0f; 
    _marque.lineJoin = kCALineJoinRound; 
    _marque.lineDashPattern = [NSArray arrayWithObjects:[NSNumber numberWithInt:10],[NSNumber numberWithInt:5], nil]; 
    _marque.bounds = CGRectMake(_stampedImageView.frame.origin.x, _stampedImageView.frame.origin.y, 0, 0); 
    _marque.position = CGPointMake(_stampedImageView.frame.origin.x + self.view.frame.origin.x, _stampedImageView.frame.origin.y + self.view.frame.origin.y); 
} 
[[_stampedImageView layer] addSublayer:_marque]; 

**marque Method:** 
if (![_marque actionForKey:@"linePhase"]) 
{ 
    CABasicAnimation *dashAnimation; 
    dashAnimation = [CABasicAnimation animationWithKeyPath:@"lineDashPhase"]; 
    [dashAnimation setFromValue:[NSNumber numberWithFloat:0.0f]]; 
    [dashAnimation setToValue:[NSNumber numberWithFloat:15.0f]]; 
    [dashAnimation setDuration:0.5f]; 
    [dashAnimation setRepeatCount:HUGE_VALF]; 
    [_marque addAnimation:dashAnimation forKey:@"linePhase"]; 
} 

_marque.bounds = CGRectMake(_stampedImageView.frame.origin.x, _stampedImageView.frame.origin.y, 0, 0); 
_marque.position = CGPointMake(_stampedImageView.frame.origin.x, _stampedImageView.frame.origin.y); 

CGMutablePathRef path = CGPathCreateMutable(); 
CGPathAddRect(path, NULL, frame); 
[_marque setPath:path]; 
CGPathRelease(path); 

_marque.hidden = NO; 

**panGestureRecognizer:** 
CGPoint translatedPoint = [(UIPanGestureRecognizer*)sender translationInView:self.view]; 

if([(UIPanGestureRecognizer*)sender state] == UIGestureRecognizerStateBegan) 
{ 
    _firstX = [_stampedImageView center].x; 
    _firstY = [_stampedImageView center].y; 
} 

translatedPoint = CGPointMake(_firstX+translatedPoint.x, _firstY+translatedPoint.y); 

[_stampedImageView setCenter:translatedPoint]; 
[self showOverlayWithFrame:_stampedImageView.frame]; 

可能有人幫我看看有什麼我缺少嗎?

謝謝!

回答

0

我想你可能會在此行中有一個錯誤:

CGPathAddRect(path, NULL, frame); 

您還沒有定義的幀的任何地方,我可以看到。也許_stampedImageView.frame?

+0

幀來自方法: - (void)showOverlayWithFrame:(CGRect)frame – 2012-08-07 22:46:01

相關問題