2012-04-09 16 views
5

Yeni iPad Retina ekranı için uygulamamı güncellemeye çalışırken ilginç bir şey fark ettim, Interface Builder'daki her koordinat hala orijinal 1024x768 çözünürlüğüne dayanıyor.XCode Koordinatlar iPad için Retina Ekranları

Bununla demek istediğim, 2048x1536 boyutunda bir ekrana sahip olmak gerekirse, tüm ekranı ekrana sığdırmak için boyutu 1024x768 ve 2048x1536 değil.

Sadece bu meraklı olduğumu merak ediyorum? Retina'ya özgü olması için Interface Builder'daki koordinat sistemini değiştirebilir miyim? Bazı grafiklerim, orijinallerinden eninde ya da yükseklikte tam olarak 2x olmadığından biraz can sıkıcı oluyor. Arabirim Oluşturucu'nun 1 veya 2'si olabilen 1,5 gibi 1/2 koordinat numaraları ayarlayamıyorum.

Arabirim tasarımımı bu noktada kodda yapmalı ve arayüz oluşturucuyu unutmalı mıyım? Grafiklerimi her iki yönde tam olarak 2x kalsın mı? Ya da sadece onunla yaşamak?

cevap

4

iOS'taki arabirim piksel değil, noktalara dayanır. Görüntüler, orijinallerin 2x boyutunda olmalı.

Nokta iOS yılında Piksel Karşı Eğer çizim kodunda belirtmek koordinatları ve yatan cihazın piksel arasında bir ayrım vardır. Kuvars, UIKit ve Çekirdek Animasyon gibi yerel çizim teknolojilerini kullanırken, koordinat değerlerini, noktalardaki mesafeleri ölçen bir mantıksal koordinat alanı kullanarak belirtirsiniz. Bu mantıksal koordinat sistemi, ekranındaki pikselleri yönetmek için sistem çerçeveleri tarafından kullanılan aygıt koordinatlarından alanından ayrıştırılır. Sistem otomatik olarak mantıksal koordinatındaki noktaları aygıt koordinat alanındaki piksellere eşler, ancak bu eşleme her zaman bire bir değil olur.

Bir nokta mutlaka ekranda bir piksel karşılık gelmiyor: Bu davranış her zaman hatırlamanız gereken o da önemli bir gerçeği yol açar. Noktaları (ve mantıksal koordinat sistemini) kullanmanın amacı cihazdan bağımsız bir çıktı boyutu sağlamaktır. Bir noktanın gerçek boyutu alakasız. Noktaların amacı, kodunun görünüm ve görüntü içeriğinin boyutunu ve konumunu belirtmek için kullanabileceğiniz nispeten tutarlı bir ölçek sağlamaktır. Piksellerle eşlenen noktaları, sistem çerçeveleri tarafından işlenen bir ayrıntıdır. Örneğin, bir yüksek çözünürlüklü ekrana sahip bir aygıtta, bir nokta genişliğinde olan hattı, aslında ekranda iki piksel genişliğinde bir çizgiyle sonuçlanabilir. Sonuç olarak, aynı içeriğine iki benzer aygıt üzerinde çizim yaparsanız, bunlardan yalnızca bir tanesi yüksek çözünürlüklü ekrana sahipse, içerik her iki aygıtta da aynı boyutta görünür.

Kendi çizim kodunuzda, çoğu zaman noktaları kullanırsınız, ancak , noktaların piksellerle nasıl eşlendiğini bilmeniz gereken zamanlardır. Örneğin, yüksek çözünürlüklü bir ekranda, içeriğinizde fazladan ayrıntı sağlamak için ekstra pikselleri kullanmak isteyebilirsiniz ya da , içeriğin boyutunu veya boyutunu ince yollarla ayarlamak isteyebilirsiniz. iOS 4 ve sonrası, UIScreen, UIView, UIImage ve CALayer sınıfları , size arasındaki noktalar ve bu belirli nesnenin pikselleri arasındaki ilişkiyi bildiren bir ölçek faktörü ortaya çıkarır. IOS 4'ten önce, bu ölçek faktörü 'un 1.0 olduğu varsayılmıştır, ancak iOS 4 ve sonrasında, temeldeki aygıtın çözünürlüğüne bağlı olarak 1.0 veya 2.0 olabilir. Gelecekte diğer ölçek faktörleri de mümkün olabilir.

http://developer.apple.com/library/ios/#documentation/2DDrawing/Conceptual/DrawingPrintingiOS/GraphicsDrawingOverview/GraphicsDrawingOverview.html

1

itibaren bu kontrolleri ve metin konumlandırırken gerçek ekran çözünürlüğü kodunuzu nispeten bağımsız hale getirmek için, Apple'ın kasti olduğunu. Bununla birlikte, belirttiğiniz gibi, cihaz için maksimum çözünürlükte görüntü grafikleri biraz daha karmaşık hale getirebilir.

iPhone için, ekran her zaman 480 x 320 puntodur. IPad için 1024 x 768 boyutlarında. Grafikleriniz cihaz için uygun şekilde ölçeklendirildiyse, kodla uğraşmak zor değil. Ben bir grafik tasarımcısı değilim, ve hi-res'in hesabını yapmak için birden fazla simge seti, resim başlatma, vb. Sağlamak zorunda kaldığım bana biraz meydan okudu. Kodunuzdaki üzerindeki etkiyi en aza indirmek bazı görüntü türleri için

Elma adlandırma etti standartları: özel grafik satır içi uğraşırken ancak size yardımcı olmuyor

https://developer.apple.com/library/ios/#DOCUMENTATION/UserExperience/Conceptual/MobileHIG/IconsImages/IconsImages.html

.

İlgili konular