2009-06-19 30 views
11

iPhone có danh sách các hiệu ứng riêng mà Apple sử dụng, chẳng hạn như "genieEffect" và "slurpEffect". Tôi tự hỏi làm thế nào người ta sẽ đi về việc thực hiện các hiệu ứng slurp (đây là khi bạn thùng rác một tin nhắn mail hoặc một lưu ý).Làm cách nào để triển khai hiệu ứng slurp trên iPhone?

Tôi hiểu cách sử dụng Hoạt ảnh chính, nhưng tôi không chắc chắn chính xác phần nào họ đang sử dụng để tải hình động đó.

+0

Cụ thể, tôi đang tìm cách mô phỏng hiệu ứng của bản thân (hoặc một cái gì đó tương tự), thay vì sử dụng API riêng tư (ứng dụng này sẽ bị từ chối). – Itay

Trả lời

1

bài này nói về việc sử dụng các API riêng cho hiệu lực: link text

+0

Tôi hiểu cách sử dụng API riêng tư, nhưng đó không phải là những gì tôi đang theo dõi, vì tôi muốn ứng dụng của tôi không bị từ chối :) Cụ thể, tôi đang tìm cách mô phỏng hiệu ứng của bản thân mình (hoặc một cái gì đó tương tự). – Itay

+0

Về mặt kỹ thuật ... đây là API không có giấy tờ chứ không phải API riêng tư? Có vẻ như bạn vẫn đang sử dụng các cuộc gọi hàm có sẵn công khai. Tôi nghĩ rằng điều này có lẽ là an toàn để sử dụng, nhưng tôi sẽ ném vào một lá cờ để bạn có thể rơi trở lại một hiệu ứng lame nếu họ không đồng ý. –

+1

Tôi muốn tin rằng bạn đúng, nhưng trực giác của tôi đang nói với tôi theo cách khác. Tôi có thể sẽ kết thúc với một quá trình chuyển đổi khác, trừ khi ai đó có ý tưởng về cách thực hiện điều này. – Itay

1

Nó có vẻ là một sự kết hợp phức tạp của biến đổi 2D và 3D. : - \ Bạn phải thực sự nghiên cứu kỹ CoreAnimation để mô phỏng hiệu ứng này.

1

Tôi sẽ làm điều đó với một phép biến đổi affine được áp dụng cho lớp của chế độ xem. Đại số tuyến tính không phải là điểm mạnh của tôi;) vì vậy tôi không thể xác định việc chuyển đổi chính xác nhưng tôi đoán sẽ là một cái gì đó như thế này cho các hình ảnh động:

  • Đặt alpha mờ dần đến 0.0 hoặc một cái gì đó gần với 0
  • Áp dụng một chuyển đổi để squish hai góc đáy gần trung tâm
  • Scale xuống nhằm rất nhỏ
  • di chuyển trung tâm của lớp xuống dưới cùng của màn hình (hoặc bất cứ nơi nào bạn muốn nó Genie tới.

Đó là nhiều hơn hoặc ít hơn như thế nào tôi nghĩ rằng nó sẽ làm việc. Bạn có thể phải làm sống động những điều này vào những thời điểm khác nhau, hoặc tất cả trong một khối, tôi không hoàn toàn chắc chắn.

Xem tài liệu về CALayer, CABasicAnimation và CGAffineTransform.

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