2014-09-11 38 views
23

Có ai nhận thấy rằng màu thanh Trạng thái cho trình mô phỏng iPhone 6 không sử dụng đúng kiểu không?iPhone 6 Thanh trạng thái màu

Tôi có UIStatusBarStyle được đặt thành UIStatusBarStyleLightContentUIViewControllerBasedStatusBarAppearance được đặt thành NO.

Tính năng này hoạt động tốt cho tất cả các điện thoại trên iOS8 ngoại trừ 6 và 6 Plus. Trong appDelegate của tôi tôi có thể thiết lập nó bằng cách sử dụng UIApplication.sharedApplication().setStatusBarStyle(.LightContent, animated: false) nhưng điều này không đặt nó cho màn hình khởi động. Nó vẫn muốn tối khi tôi muốn nội dung ánh sáng. Có ai có một sửa chữa cho điều này. Có một mục mới tôi cần phải thêm plist?

+2

Có cùng một vấn đề, tự hỏi liệu lỗi trình mô phỏng của nó hay cái gì khác? – JeffN

+0

Trông giống như một vấn đề mô phỏng đối với tôi. – db42

+2

Cùng một vấn đề ở đây. Nhưng chỉ khi ra mắt. Khi khung nhìn được tải, nó sẽ chuyển sang màu trắng. –

Trả lời

15

Một lựa chọn là để thiết lập UIViewControllerBasedStatusBarAppearance-YES trong plist, và sau đó trong mỗi bộ điều khiển xem có phương pháp này

- (UIStatusBarStyle) preferredStatusBarStyle { 
    return UIStatusBarStyleLightContent; 
} 

Đó là một cơn đau ở ass để làm và chắc chắn không phải là giải pháp đẹp nhất. Như nó đứng, điều này hoạt động trên tất cả các bộ điều khiển xem của tôi nhưng một, mà tôi vẫn đang tìm kiếm một giải pháp thay thế cho việc này.

EDIT

tìm thấy một giải pháp tốt hơn. Giữ UIViewControllerBasedStatusBarAppearance đến NOStatus bar style đến UIStatusBarStyleLightContent trong plist, sau đó thêm hình ảnh khởi chạy chính xác bằng cách chọn + -> New Launch Image từ Nội dung hình ảnh. Điều này sẽ ngăn iPhone 6/6 + mở rộng ứng dụng lên đến kích thước màn hình và hiển thị thanh trạng thái ánh sáng. Kích thước màn hình chính xác là:

iPhone 4/4S: 640x960 px 
iPhone 5/5S: 640x1136 px 
iPhone 6: 750x1334 px (edited) 
iPhone 6+: 1242x2208 px 

Tôi không thể nhận tín dụng cho điều này, chỉ cần chứng minh rằng nó hoạt động. Đây là nơi tôi tìm thấy giải pháp https://stackoverflow.com/a/25985800/3247035http://beageek.biz/how-to-create-launch-images-app-xcode-ios/

+0

Trong trường hợp của tôi, tôi phải phân lớp các UINavigationControllers của mình trong bảng phân cảnh và đặt phương thức ưa thíchStatusBarStyle ở đó. Đặt nó trong bộ điều khiển của nav không làm gì cả. –

+0

Giải pháp đầu tiên của @pfryerda đã giải quyết được vấn đề của tôi và không phải là công việc phụ trội. – MartinR

0

câu trả lời pfryerda là chính xác với hình ảnh khởi chạy là giải pháp cho vấn đề. Tôi đã khắc phục sự cố của mình mà không hề biết. Tôi đã sử dụng phần Launch Screen File mới của tab Thông tin chung và đặt màn hình khởi chạy thành bảng phân cảnh riêng của riêng mình. Trong bảng phân cảnh, tôi đã tạo Chế độ xem được đổi kích thước thành toàn màn hình và tôi biết lâu hơn có sự cố này vì màn hình khởi chạy luôn có kích thước phù hợp.

Chỉ cần nhìn tóm tắt về làm thế nào để tạo ra một bảng câu chuyện màn hình khởi động:

  1. Tạo một file storyboard trống tên LaunchScreen.storyboard.

  2. Chuyển đến cài đặt đích của bạn và, trên tab Chung, chọn bảng phân cảnh làm Tệp màn hình khởi chạy của bạn. Xcode sẽ thêm một khóa UILaunchStoryboardName tương ứng vào Info.plist của ứng dụng của bạn. Khi phím này xuất hiện, Xcode sẽ ưu tiên nó trên bất kỳ hình ảnh khởi chạy nào mà bạn có thể đã đặt.

  3. Thêm cảnh điều khiển chế độ xem vào bảng phân cảnh. Thêm một số bản xem trước vào cảnh và định vị chúng với các ràng buộc. Khi bạn khởi chạy ứng dụng trên thiết bị, hệ điều hành nên sử dụng cảnh làm màn hình khởi chạy.

Bạn có thể tìm hiểu thêm ở đây: http://oleb.net/blog/2014/08/replacing-launch-images-with-storyboards/

1

Tôi cũng đề cập này để đáp ứng với this post, nhưng công việc chỉ quanh tôi đã tìm thấy là để chuyển đổi ứng dụng của bạn để sử dụng iPhone 6 và 6 + tài sản.

Khi bạn cung cấp nội dung màn hình tải có kích thước chính xác trong trình quản lý nội dung, ứng dụng của bạn sẽ tôn trọng cài đặt kiểu thanh trạng thái của bạn.

Từ https://developer.apple.com/library/iOS/documentation/userexperience/conceptual/mobilehig/LaunchImages.html

For iPhone 6: 

750 x 1334 (@2x) for portrait 
1334 x 750 (@2x) for landscape 

For iPhone 6 Plus: 

1242 x 2208 (@3x) for portrait 
2208 x 1242 (@3x) for landscape 

Bạn cũng nên kiểm tra lại rằng bạn đang thiết trên thanh trạng thái phong cách của bạn để UIStatusBarStyleLightContent. Điều này có thể được thực hiện theo hai cách:

  • Trong info.plist của ứng dụng của bạn thiết UIStatusBarStyle = UIStatusBarStyleLightContent
  • Override phương pháp preferredStatusBarStyle: trong tất cả các áp dụng UIViewController của trong dự án của bạn. (Đối với tùy chọn này, hãy chắc chắn rằng trong info.plist của ứng dụng của bạn, bạn có UIViewControllerBasedStatusBarAppearance = YES)
7

tôi đã có cùng một vấn đề và giải quyết bằng cách

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [self setNeedsStatusBarAppearanceUpdate]; 
} 

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    return UIStatusBarStyleLightContent; 
} 

tôi lười biếng, vì vậy tôi đã tạo ra một điều khiển để thêm nó và tất cả những người khác kế thừa nó

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