2012-03-03 32 views
6

có thể tôi không nhận được. Khi tôi làmUIView xoay 45 ° biến mất?

self.tweetPeak.transform = CGAffineTransformMakeRotation(RADIANS(45)); 

nơi radian là

#define RADIANS(degrees) ((degrees * M_PI)/180.0) 

trên một UIView đơn giản Object nó sẽ biến mất.

Tôi đoán nó chỉ mỏng để xem. Ấn tượng của tôi là chế độ xem đang nhỏ hơn trong phạm vi từ 20 đến 45 độ.

nó là gì? Tôi đã cố gắng đặt chế độ xem mờ đục. Không có hiệu lực.

chris

+0

Có thể nó đang được xoay ra khỏi màn hình không? –

+0

Không liên quan nhưng 'RADIONS' là tên khủng khiếp cho định nghĩa đó. Nó không cho biết nó đang làm gì hoặc cách sử dụng nó. –

+0

@ Paul.s đó là một vấn đề về phong cách, IMO, đó là một tên tốt cho một vĩ mô, nhưng tôi đã thấy nó có nhãn 'TO_RADIANS',' DEGREES_TO_RADIANS' và như vậy. Nó thực sự chỉ phụ thuộc vào những gì bạn cần. –

Trả lời

9

Bạn cần phải ngừng điều chỉnh khung sau khi luân chuyển, nó gây ra không mong muốn kéo dài đến biến đổi ma trận, tôi không chắc chắn đến lý do chính thức tại sao, nhưng nó có cái gì để làm với Apple sử dụng riêng của họ hệ thống ma trận thay vì ma trận truyền thống để thể hiện bản dịch/xoay/tỷ lệ 2D/3D. Tôi đã có cùng một vấn đề ngày hôm trước, để sửa chữa nó, thay vì xoay cái nhìn đó, tôi chỉ làm cho nó thành một cái thùng với cái nhìn thực sự mà tôi muốn xoay vào bên trong, và xoay nó.

+3

CGAffineTransform và CATransform3D là các ma trận hoàn toàn tiêu chuẩn, truyền thống. Apple không làm gì lạ cả. Vấn đề của bạn là '- [khung CALayer]' là một giá trị _derived_ - nó dựa trên các thuộc tính 'vị trí',' giới hạn', 'neoPoint' và' biến đổi'. Nếu bạn thay đổi biến đổi, khung sẽ thay đổi. Nếu bạn sau đó cố gắng thay đổi khung, lớp sẽ cố gắng điều chỉnh vị trí và bounds.size để làm cho nó hoạt động. Giải pháp: không đặt khung. –

+0

Nếu CATransform3D là ma trận truyền thống thì sao tôi không thể thiết lập, giả sử ma trận trực giao truyền thống và vẫn thấy lớp của tôi? Hoặc một quan điểm ở đó? Tôi có nghĩa là tôi không nghi ngờ bạn, nhưng họ không hoàn toàn sử dụng nó theo truyền thống, tại sao .m34 kiểm soát một cái gì đó giống như FOV? Không ai trong số này là khá chuẩn nếu bạn hỏi tôi. Nhưng tôi có thể sai. –

+0

Tôi đã tìm kiếm một chút cố gắng để tìm ra điều này. Hai bình luận của bạn thực sự đã giúp tôi hiểu được vấn đề của tôi. Đối với bất cứ ai khác chạy vào điều này ... Tôi đã có một số khởi tạo mà tôi muốn một số nhãn xoay. Tôi đã có điều này trong viewDidLoad ... Tôi đã phải di chuyển nó để xemDidAppear để có được những thứ làm việc một cách chính xác (như khung vẫn đang được thiết lập cho đến sau khi viewWillAppear). –