2011-08-16 35 views
34

Tôi đang cố gắng thực hiện tự động lặp lại hoạt ảnh xoay hình ảnh của mình bằng CABasicAnimation. Tôi đã cố gắng tìm kiếm trên web làm thế nào để thiết lập tài sản như vậy nhưng không thể tìm thấy điều đó. Nó thực sự không có tài sản như vậy cho hoạt hình của CA? Tôi biết rằng bạn có thể đặt một số giá trị lớn (here) để repeatCount tài sản nhưng hey, tại sao sau đó không UIView animateWithDuration có một tùy chọn UIViewAnimationOptionRepeat và những gì giá trị là hardcoded cho nó?CABasicAnimation lặp lại không giới hạn mà không có HUGE_VALF?

+0

Các giá trị là '1e50', trong' math.h'. – bcattle

+0

Trong XCode ⌘-click để đi đến định nghĩa của một cái gì đó. – bcattle

Trả lời

101

Không, đây là cách bạn phải thực hiện theo the documentation.

Đặt thuộc tính này thành HUGE_VALF sẽ khiến hoạt ảnh lặp lại mãi mãi.


Cập nhật cho Swift:

HUGE_VALF không tiếp xúc với Swift. Tuy nhiên, sự hiểu biết của tôi từ this page là HUGE_VALF được dự định là vô cùng (trên thực tế, INFINITY được định nghĩa là HUGE_VALF). Kể từ khi Nghị định thư FloatingPointType Swift cung cấp một static var infinity, bạn chỉ có thể viết

myAnimation.repeatCount = .infinity 
+0

trong iOS 7 trở lên, nó dừng sau một khoảng thời gian nhất định.Không chắc chắn lý do gì. –

+0

'Float.infinity' trong Swift. Tài liệu được đề cập đề cập đến 'HUGE_VALF' nhưng không cho biết cách thể hiện giống nhau trong Swift. –

4

Đối nhanh chóng 3.0 trở lên

   let rotationAnimation = CABasicAnimation(keyPath: "transform.rotation.z") 
      rotationAnimation.fromValue = 0 
      rotationAnimation.toValue = CGFloat.pi * 2 
      rotationAnimation.duration = 1 
      rotationAnimation.repeatCount = .infinity 
      holderView.btnRefresh.layer.add(rotationAnimation, forKey: "spinAnimation") 
Các vấn đề liên quan