2012-07-11 35 views
6

Tôi có một UIBezierPath (một vòng tròn) được xây dựng từng bước với:UIBezierPath - Animating Điền

[circlePath addArcWithCenter:clockCenter radius:radius startAngle:angleRadians endAngle:1.5*M_PI clockwise:YES]; 
... 
[circlePath closePath]; 
[COLOR_CIRCLE setFill]; 
[circlePath fill]; 

Thỉnh thoảng, tôi muốn animate điền để nó mất một giây để hoàn toàn lấp đầy và đi theo con đường như nó được xây dựng (theo chiều kim đồng hồ). Phương pháp ưa thích để hoàn thành điều này là gì? Ngay bây giờ tôi đang nghĩ Core Animation nhưng tôi hy vọng có một điền: withDelay hoặc một số như vậy mà tôi đã không vấp. TIA.

+1

Tôi đã làm điều tương tự cho bản trình bày Hoạt ảnh cốt lõi trong khi quay lại. [Mã mẫu] (https://github.com/d-ronnqvist/cocoaheads-coreanimation-samplecode/blob/master/PieChartProgress/PieChartProgress/DRPieChartProgressView.m) có sẵn tại GitHub và có nhiều nhận xét trong đó. –

+3

Bạn cũng có thể xem [câu trả lời của tôi] (http://stackoverflow.com/a/8021051/608157) cho [Hoạt ảnh lõi iPhone - Vẽ một vòng tròn] (http://stackoverflow.com/q/7991086/608157) –

Trả lời

2

Bạn có thể thử này:

Tạo một CAShapeLayer mà path được thiết lập để hình của bạn. Sử dụng CAShapeLayer này làm mặt nạ cho một lớp khác mà bạn vẽ một vòng cung/vòng tròn đầy. Sau đó tạo hiệu ứng góc hồ quang/vòng cung từ 0º đến 360º. Điều đó có thể gần đúng hiệu quả bạn muốn.

Tôi không thể tìm thấy cách "tích hợp sẵn" để tạo hiệu ứng điền nếu bạn muốn. Có một cách tích hợp để tạo hiệu ứng đột quỵ, tuy nhiên:

Sử dụng UIView với người ủng hộ CAShapeLayer sao lưu nó. CAShapeLayer có thuộc tính path. Sau đó, bạn có thể áp dụng hoạt ảnh cho các thuộc tính strokeStart và/hoặc strokeEnd của lớp.

+0

Xin lỗi - chỉ cần nhận ra con đường của bạn là một vòng tròn đơn giản, không phải là một hình dạng tùy ý. Câu trả lời này là cho một hình dạng tùy ý. Bạn nên loại bỏ các bước mặt nạ cho một vòng tròn đồng bằng. Xem câu trả lời của David – nielsbot

Các vấn đề liên quan