빌드하려는 도전 과제가 있습니다.iOS는 한 뷰의 중심점에서 다른 뷰의 중심점으로 점선으로 그립니다. CGAffineTransformMakeTranslationg를 사용하여 두 번째 뷰를 애니메이션화합니다.
기본적으로, 여기에이 시나리오를 가지고 :
나는이 유래 응답에 점선 감사를 그릴 수 있어요: 점선 그리기가 완료
Draw dotted (not dashed!) line, with IBDesignable in 2017
내부 :
-(void)drawRect:(CGRect)rect
{
[self drawDottedLineFromStartingPoint:self.mainPhoto.center ToEndPoint:self.photo1.center];
[self drawDottedLineFromStartingPoint:self.mainPhoto.center ToEndPoint:self.photo2.center];
[self drawDottedLineFromStartingPoint:self.mainPhoto.center ToEndPoint:self.photo3.center];
[self drawDottedLineFromStartingPoint:self.mainPhoto.center ToEndPoint:self.photo4.center];
[self drawDottedLineFromStartingPoint:self.mainPhoto.center ToEndPoint:self.photo5.center];
}
-(void)drawDottedLineFromStartingPoint:(CGPoint)startPoint ToEndPoint:(CGPoint)endPoint
{
UIBezierPath *path = [[UIBezierPath alloc] init];
[path moveToPoint:startPoint];
[path addLineToPoint:endPoint];
path.lineWidth = 4;
CGFloat dashes[] = {path.lineWidth * 0, path.lineWidth * 2};
[path setLineDash:dashes count:2 phase:0];
path.lineCapStyle = kCGLineCapRound;
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSetStrokeColorWithColor(ctx, [ThemeManager mediumTextColor].CGColor);
[path stroke];
}
내가 직면하고있는 문제는 각 작은 동그라미가 아래로 떨어지면서 움직이는 것입니다.
나는 작은 원을 애니메이션 오전 방법은 같은 것을 사용하는 것입니다 :
CGAffineTransformMakeTranslation(0, 50);
나는, 점선은 작은 원의 마지막 휴식 위치로 큰 원에서 그려 그렇게 할 때, 점선은 작은 원이 움직이거나 떨어지는대로 "따르지"않습니다.
내가 달성하기 위해 노력하고 무엇에 대한 쉬운 해결책이 있습니까 :
은 그래서 당신이 보는 것은 이것이다? 나는 NSTimer를 사용하고 빗변 길이를 계산하는 것을 시도했다. 길이로 나누지 만 아주 멀리하지는 않았다. D
올바른 방향으로 나를 안내해 주셔서 감사합니다. NSTimer를 사용하여 화면을 다시 그려 내 방식으로 해결했습니다. D 실제 프레임을 얻으려면 presentation 레이어 프레임 원점 + 원 너비/2.0을 가리 키도록 drawRect 메서드를 수정했습니다. – Zhang