2010-01-31 31 views
7

Tôi nhận thấy rằng khi đặt ảnh PNG vào chế độ xem bằng cách sử dụng IB và/hoặc làm động các hình ảnh đó ở các vị trí khác nhau mờ nhẹ.Tại sao ảnh PNG đôi khi bị mờ tùy thuộc vào vị trí của nó trong chế độ xem

Trong hầu hết các trường hợp, tôi có thể khắc phục mờ bằng cách thêm 0,5 pixel vào vị trí hình ảnh.

[lbLiteButton.layer setPosition:CGPointMake(140.5,159.5)]; 

Đôi khi tôi phải điều chỉnh cả x và y như trên. Đôi khi tôi chỉ phải điều chỉnh x hoặc y.

Tôi nhớ đọc ở đâu đó điều này phải làm với kích thước của hình ảnh và cách hoạt ảnh lõi hoạt động và một số việc cần làm với một nửa pixel ... nhưng tôi không thể tìm thấy bài viết ở đâu cả !?

Vấn đề với giải pháp ".5 pixel" là khác nhau đối với mọi hình ảnh PNG tùy thuộc vào kích thước, do đó bạn không thể sử dụng lại hoạt ảnh tùy chỉnh vì bạn phải tùy chỉnh hình ảnh cho từng hình ảnh khác nhau.

  1. Có cách nào để đảm bảo rằng tôi đặt hoặc tạo hiệu ứng hình ảnh ở đâu, tôi sẽ không nhận được bất kỳ vị trí bị nhòe nào?
  2. Có ai có bất kỳ thông tin nào về điều này không?

Cảm ơn bạn!

+0

Kích thước của hình ảnh của bạn là gì? Chiều rộng hoặc chiều cao có lẻ không? –

Trả lời

14

Thuộc tính position thuộc lớp của chế độ xem được dựa trên thuộc tính anchorPoint của nó. Theo mặc định, đó là (0,5, 0,5), có nghĩa là điểm neo của lớp nằm ở tâm của nó. Nếu chế độ xem của bạn (và lớp của nó) là một số lượng điểm ảnh rộng hoặc cao, việc đặt giá trị tích phân cho vị trí sẽ làm cho gốc của chế độ xem không thể tách rời, dẫn đến độ mờ mà bạn nhìn thấy. Để làm việc này, bạn có thể tìm ra phiên bản tích phân vị trí bằng cách lấy vị trí trung tâm mong muốn của khung nhìn, trừ một nửa chiều rộng của khung nhìn, làm tròn giá trị đó, sau đó thêm một nửa chiều rộng của khung nhìn và lặp lại cho chiều cao. Bạn cũng có thể đặt anchorPoint cho lớp của chế độ xem của bạn thành (0,0) và định vị chế độ xem dựa trên nguồn gốc của nó.

Có khả năng điều này cũng có thể liên quan đến sự lệch hướng của người giám sát. Để chẩn đoán điều này, bạn có thể sử dụng công cụ Hoạt ảnh chính trong Công cụ và chọn tùy chọn Hình ảnh lệch màu. Nó sẽ tô màu bất kỳ chế độ xem hoặc lớp nào không được căn chỉnh theo pixel trong ứng dụng của bạn.

+1

Cảm ơn bạn. Có, vấn đề là một số hình ảnh của tôi có tỷ lệ cỡ ảnh không đều. Những người đã làm việc tốt, có một tỷ lệ thậm chí. Thay đổi điểm neo thành (0,0) hoạt động Ngoài ra, điều chỉnh kích thước hình ảnh bằng một pixel, trong trình chỉnh sửa hình ảnh, thành một tỷ lệ chẵn. (Tốt nếu bạn không quan tâm đến pixel) I bây giờ sẽ thử công cụ hoạt hình chính. Cảm ơn sự giúp đỡ của bạn. – Jonathan

+0

Tôi đã thử tùy chọn Color Misaligned và vâng, khi nào tôi thực hiện "CAKeyFrameAnimation", nó hilights quan điểm của những gì bao giờ là hoạt hình như "lệch hướng". Nhưng các vị trí bắt đầu và dừng lại là ok. – Jonathan

2

Tôi đã có trải nghiệm tương tự với văn bản mờ trong nhãn và nguyên nhân là do giám sát nhãn của tôi có độ lệch pixel phụ. Vì vậy, ngay cả khi vị trí trong chế độ xem đó là không thể tách rời, khi được điều chỉnh theo tọa độ của bố cục, vị trí của nó sẽ có độ phân giải một nửa hoặc hơn, gây ra hiện tượng mờ.

Nếu thỉnh thoảng bạn chỉ nhận được điều này, điều đó có thể không xảy ra. Giám sát viên của bạn có di chuyển xung quanh hay vị trí kỳ lạ không? Tôi muốn nói điều tốt nhất cần làm là tìm ra những hoàn cảnh chính xác mà theo đó điều này đang xảy ra.

1

IB có một lỗi mà đôi khi (không thường xuyên) chỉ di chuyển các phần tử xung quanh sẽ làm cho chúng mờ - bạn thấy nó thường xuyên nhất với UILabels và UIImageViews (mặc dù đó có lẽ chỉ là những gì rõ ràng nhất). Tôi chắc chắn nó đã làm với các điểm được đề cập ở trên trong một số cách, nhưng sửa chữa thường là để thiết lập vị trí (x, y) tọa độ cho các yếu tố để 0,0, và sau đó trở lại các giá trị ban đầu. Điều này thường giải quyết vấn đề (một lần nữa, đây là trong IB).

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