0
저는 CAShapeLayer를 사용하여 선을 그릴 수 있지만 45도 각도에서만 선을 그립니다. 라인을 45도 각도로 그려야합니다. 그렇지 않으면 뷰에서 제거됩니다. 어떻게하면 CAShapeLayer를 사용하여 선을 그릴 수 있습니까? 제발 도와주세요. 방금 location
과 origin
사이의 각도가 45도 +/- 엡실론 것을 확인해야iPhone에서 CAShapeLayer를 사용하여 45도 각도로 선 그리는 방법
- (void)handlePanGesture:(UIPanGestureRecognizer *)gesture
{
static CGPoint origin;
CGPoint location ;
if (gesture.state == UIGestureRecognizerStateBegan)
{
shapeLayer = [self createShapeLayer:gesture.view];
origin = [gesture locationInView:gesture.view];
UIView *tappedView = [gesture.view hitTest:origin withEvent:nil];
UILabel *tempLabel = (UILabel *)tappedView;
[valuesArray addObject:tempLabel];
if(valuesArray)
{
[valuesArray removeAllObjects];
}
valuesArray = [[NSMutableArray alloc] init];
}
else if (gesture.state == UIGestureRecognizerStateChanged)
{
path1 = [UIBezierPath bezierPath];
[path1 moveToPoint:origin];
location = [gesture locationInView:gesture.view];
[path1 addLineToPoint:location];
shapeLayer.path = path1.CGPath;
}
}
- (CAShapeLayer *)createShapeLayer:(UIView *)view
{
shapeLayer = [[CAShapeLayer alloc] init];
shapeLayer.fillColor = [UIColor clearColor].CGColor;
shapeLayer.strokeColor = [UIColor redColor].CGColor;
shapeLayer.lineCap = kCALineCapRound;
shapeLayer.lineJoin = kCALineJoinRound;
shapeLayer.lineWidth = 10.0;
[view.layer addSublayer:shapeLayer];//view.layer
return shapeLayer;
}
프로그래밍을 이해 한 것 같습니다. 나머지는 단지 기초적인 수학입니다. 삼각법 (사인파, 코사인, 접선)을 반복 할 수있는 기회. –