12/08/2018, 10:37

Đối ứng cho iPhone6/iPhone6 Plus

Với Xcode6 GM, chúng ta có thể tiến hành đối ứng iPhone6/6 Plus cho các iOS projects từ trước. Screen Resolution So sánh độ phân giải các thiết bị iPhone: iPhone4s iPhone5/5s iPhone6 iPhone6 Plus Physical Resolution 640x960 640x1136 750x1334 1080x1920 (1242 x 2208) ...

Với Xcode6 GM, chúng ta có thể tiến hành đối ứng iPhone6/6 Plus cho các iOS projects từ trước.

Screen Resolution

So sánh độ phân giải các thiết bị iPhone:

iPhone4s iPhone5/5s iPhone6 iPhone6 Plus
Physical Resolution 640x960 640x1136 750x1334 1080x1920 (1242 x 2208)
Logical Resolution 320x480 320x568 375x667 414x736
Pixel Density 326ppi 326ppi 326ppi 401ppi
Device Pixel Ratio 2.0 2.0 2.0 3.0

Dễ nhận thấy iPhone6 Plus có pixel ratio = 3 sẽ mang lại khá là phiền hà, khiến các thiết kế cho iOS bây giờ phải chia trường hợp theo màn hình.

Chạy thử debug bằng iOS simulator thì kích thước màn hình của iPhone6 plus là 414 x 736, 3 lần là 1242 x 2208, nhưng theo tài liệu chính thức thì lại là 1080 x 1920. vậy là pixel ratio chỉ khoản 2.46 thôi :-?

Phương pháp đối ứng cho các project từ trước

Với những iOS projects hiện tại, không làm gì cả mà cứ build rồi chạy thì hiển thị sẽ là dạng phóng to của hiển thị trên iPhone5/5s (320 x 568), cảm giác giống như khi chạy iPhone app cho iPad thì sẽ x2 vậy. Tuy nhiên do sự sai lệch về kích cỡ ko lớn như iPad ⇔ iPhone nên cũng ko có vấn đề gì lắm.

Để chạy với độ phân giải của iPhone6/6plus, bắt buộc phải setting cho Launch Screen File hoặc Launch Images.

Launch Images:

Launch_Images

Project file: General tab → App Icons and Launch Images → Launch Images Source → setting LaunchImage

LaunchImages

Nếu lựa chọn iOS8.0 and Later ở LaunchImage của images.xcassets thì có thể thiết lập ảnh cho Retina HD 5.5, Retina HD 4.7.

Đối với project mới, với Launch Screen File ta có thể tạo xib file dành cho khởi động thay vì chuẩn bị 4 loại ảnh màn hình khởi động. Chức năng Launch Screen File tạo màn hình khởi động bằng xib file là chức năng từ iOS8 trở đi, từ iOS7 trở về trước thì ko sử dụng được.

Image resources

Đối với iPhone6 Plus, chương trình sẽ lấy ảnh từ @3x, nếu không có thì sẽ lấy từ @2x.

Do đó từ giờ iOS phải chuẩn bị image resources x3 nữa (honho)

Source: iPhone6/iPhone6 Plusの画面対応について

0