2013-10-13 16 views
5

Trong iOS 7, một số các chức năng vẽ văn bản CGContext bị phản đối ủng hộ của Core Text:lựa chọn thay thế CoreText chức năng văn bản CGContext phản

Deprecated CGContext Functions

Đôi khi của Apple cho thấy lựa chọn thay thế cụ thể chức năng bị phản đối (ví dụ: "sử dụng x thay vì ") nhưng trong trường hợp này," x "chỉ đơn giản là" Văn bản cốt lõi ", không phải tất cả đều cụ thể.

Vì vậy, nếu tôi chỉ ở số -drawRect: và tôi có số CGContextRef và tôi sẵn sàng gọi CGContextShowGlyphsAtPoint(), tôi phải làm gì? Thực hành tốt nhất là gì và thay thế cho Văn bản cốt lõi đơn giản nhất mà không yêu cầu tái cấu trúc bất kỳ mã vẽ nào ngoài cuộc gọi đó (nếu có tồn tại)?

Điểm thưởng cho câu trả lời trả lời ngắn gọn cho từng chức năng văn bản không dùng nữa trên trang đó — tôi quan tâm nhất đến CGContextShowGlyphsAtPoint(), nhưng điều này có thể là tài liệu tham khảo tốt cho những người khác tìm kiếm giải pháp thay thế cho bất kỳ chức năng nào.

+0

Bạn có thể thử 'CTFontDrawGlyphs'. Có thể bạn sẽ phải thực hiện một số tính toán, nhưng điều này có vẻ là phương pháp tốt nhất mà tôi đã nhìn thấy. –

Trả lời

0

Tôi tin rằng ý định là dành cho CGContextShowGlyphsAtPoint để được thay thế bằng CGContextShowGlyphsAtPositions. Bạn có thể nhận được các vị trí glyph với CTRunGetPositionsPtr hoặc (nếu trả về NULL), CTRunGetPositions.

AFAICT, CGContextShowGlyphsAtPositions cũng thay thế một số chức năng CoreText cũ khác, chẳng hạn như CGContextShowGlyphs, CGContextShowTextCGContextShowTextAtPoint. Các chức năng CoreText cũ khác như CGContextSelectFont được thay thế bằng nhiều chức năng mới (trong trường hợp đó, CGContextSetFontCGContextSetFontSize). Tôi tin rằng điều này là hoàn toàn tự giải thích bằng cách đọc the API.

Có thể có các chức năng không được hỗ trợ khác mà tôi đã không đề cập cụ thể, nhưng tôi cho rằng bạn có được điểm.

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