Tôi có hình ảnh 100x100 pixel mà tôi muốn vẽ ở các góc khác nhau xoay quanh tâm của hình ảnh. Đoạn mã sau hoạt động, nhưng quay xung quanh origo ban đầu của hệ tọa độ (góc trên bên trái) và không phải vị trí đã dịch. Do đó hình ảnh không được xoay quanh chính nó mà là xung quanh góc trên bên trái của màn hình.Xoay xoay CGContext
Mã sau được chạy trong chế độ xem tùy chỉnh trong một ứng dụng trống không có gì khác ngoài việc này.
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(context, -50, -50);
CGContextRotateCTM (context, 0.3);
CGContextTranslateCTM(context,768/2,1024/2);
[image drawAtPoint:CGPointMake(0,0)];
}
Tôi đã thử làm tương tự bằng cách sử dụng CGAffineTransform, nhưng có cùng kết quả.
Không mã hóa cứng kích thước màn hình. Khi các nhà phát triển Mac phát hiện ra 22 năm trước, và các nhà phát triển iPhone phát hiện ra một tuần trước, kích thước của màn hình không liên tục mãi mãi. Làm cho bạn một ưu tiên lớn và yêu cầu màn hình lớn như thế nào. Hãy sẵn sàng cho ngày kích thước pixel của iPad thay đổi. –
Tôi nghĩ tất cả những gì bạn cần làm là dịch trước khi bạn xoay. Các dịch thứ hai, di chuyển đến trung tâm của màn hình, sẽ không hoạt động như dự định bởi vì nó sẽ được trong các tọa độ xoay. – drawnonward
Kích thước màn hình chỉ được mã hóa cứng vì đây là mẫu đơn giản để giải quyết vấn đề của tôi ... mã thực tế của tôi không đưa ra giả định như vậy :-) – kasperjj