2008-10-28 23 views

Trả lời

20

Cách đơn giản nhất để làm điều này là sử dụng tài sản biến đổi của lớp:

float angle = M_PI; //rotate 180°, or 1 π radians 
layer.transform = CATransform3DMakeRotation(angle, 0, 0.0, 1.0); 

Đối số đầu tiên với chức năng CATransform3DMakeRotation là số tiền để xoay, theo radian. Ba phần tiếp theo mô tả vectơ xoay quanh đó để xoay. Đây là mô tả một vector trong trục z, do đó, có hiệu quả vuông góc với màn hình. Điều này sẽ xoay lớp sao cho nó lộn ngược.

1

Bạn sẽ sử dụng thuộc tính biến đổi của chế độ xem. Có một số mã ví dụ để xoay chế độ xem trong Hướng dẫn lập trình hệ điều hành iPhone, dưới Launching in Landscape Mode

0

Bạn nên xem ví dụ MoveMe của Apple để di chuyển xung quanh lớp dựa trên cảm ứng. Nó cũng áp dụng một số biến đổi mở rộng quy mô như bạn làm điều đó, do đó, nó sẽ là một ví dụ hợp lý để áp dụng các phép biến đổi luân phiên.

11

tôi đã kết thúc làm việc đó như thế này:

CGAffineTransform transform = CGAffineTransformMakeRotation(angle); 
[[self viewWithTag:999] setTransform:transform]; 

Lưu ý rằng góc trong radian.

+0

Trong giải pháp của bạn, bạn đang sửa đổi biến đổi của chế độ xem chứ không phải lớp. Chỉ là một fyi. –

+0

45 độ = M_PI/4, 90 độ = M_PI/2 http://math.rice.edu/~pcmi/sphere/drg_txt.html –

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