2012-11-22 24 views
5

Tôi đang cố gắng xoay UIImageView và giữ nó ở giữa. Trong hình ảnh bên dưới, tôi muốn điểm mũi tên xoay (dấu chữ thập đỏ) điểm trung tâm để khớp với điểm trung tâm của mũi tên 0 ° (chữ thập màu lam).Xoay UIImageView với cùng một điểm trung tâm bằng cách sử dụng CGAffineTransformMakeRotation

Tôi đã thử nhiều điểm neo khác nhau nhưng tôi không thể làm cho nó hoạt động như tôi muốn.

// Rotate 
self.arrowRotatedImageView.layer.anchorPoint = CGPointMake(0.5,0.5); 
CGFloat angle = 45 * (M_PI/180); 
self.arrowRotatedImageView.transform = CGAffineTransformMakeRotation(angle); 

Tôi đang thiếu gì? Tôi đang đọc qua số Apple docs nhưng tôi không thể tìm ra.

iPhone screenshot of a rotated arrow on top of a non-rotated arrow

Trả lời

6

Hóa ra vấn đề luân chuyển kỳ lạ có liên quan đến iOS mới 6 tính năng autolayout. Một khi tôi đã dành một chút thời gian để hiểu các ràng buộc về căn chỉnh đã hoạt động như thế nào, tôi đã có thể đạt được kết quả mà tôi muốn.

Nếu bạn gặp sự cố xoay kỳ lạ và đang sử dụng iOS 6 với tính năng tự động xác minh được thì các ràng buộc của bạn cần điều chỉnh.

Điều quan trọng là xoay theo chiều dọc và chiều ngang giữa hình ảnh trong chế độ xoay vòng trong chế độ xem chính.

+0

Cảm ơn câu trả lời, cùng một vấn đề đã xảy ra cả ngày cho đến khi tôi tìm thấy câu trả lời của bạn – dreampowder

+9

sẽ rất tuyệt nếu bạn chia sẻ những gì bạn đã học về những khó khăn để giải quyết vấn đề. :) –

+2

Vâng, ditto. Tôi đang tìm kiếm vấn đề này. – huggie

2

Tôi đã gặp sự cố tương tự, tôi đã giải quyết vấn đề bằng cách áp dụng một số Center X Alignment ConstraintCenter Y Alignment Constraint đến số UIImageView được đề cập. Làm như vậy sẽ ngăn hình ảnh chuyển động khỏi vị trí trung tâm x và y của nó.