2012-09-25 25 views
9

Sau khi xây dựng ứng dụng iPad của tôi với iOS 6.0 SDK, tôi nhận được hành vi kỳ lạ này với chế độ xem chi tiết của UISplitViewController. Chế độ xem chi tiết được đặt ở vị trí thấp hơn 20 pixel (điểm/40 pixel).Xem giảm 20 pixel khi xây dựng dựa trên iOS 6 SDK trong Xcode 4.5

enter image description here

Đây là những gì nó trông giống như dưới 5.1:

enter image description here

Đối DetailViewController_iPad.xib trong Interface Builder tôi đã thiết lập các Metrics mô phỏng> Bar Top None. Điều này không giúp được gì. Tôi đã đăng khung xem:

- (void) viewDidLayoutSubviews { 
//.. etc 
NSLog(@"viewDidLayoutSubviews: %@", CGRectCreateDictionaryRepresentation(self.view.frame)); 
} 

này ghi lại chiều cao như 684 thay vì những gì nó nên là: 704.

Height = 684;Width = 703;X = 0;Y = 0;

Bất cứ ai có bất cứ kinh nghiệm với điều này loại điều? Tôi nên thử gì tiếp theo?

CẬP NHẬT: Sự cố này dường như không liên tục, với một số biên dịch gây ra lỗi này và một số biên dịch không gây ra.

Nếu có ai khác gặp sự cố này và tìm ra nguyên nhân gây ra sự cố, tôi vẫn muốn biết.

+0

Tôi gặp vấn đề tương tự nhưng với hình nền UIView của tôi. Tôi có 20 pixel ở dưới cùng. – Claus

+0

Bạn đã đặt mặt nạ tự động hóa chính xác chưa? (chiều cao linh hoạt, biên giới trên và dưới cố định) – deanWombourne

+0

@deanWombourne Có, tôi đã làm điều đó, vô ích. – MattyG

Trả lời

9

Tôi gặp vấn đề tương tự!

Sự cố sẽ xảy ra khi có một bộ điều khiển chế độ xem khác trong bộ điều khiển điều hướng và bộ điều khiển chia tách này được đẩy vào phương pháp : didFinishLaunchingWithOptions: trong khi khởi chạy ứng dụng.

này cố định các vấn đề đối với tôi:

Khi đẩy splitViewController tôi đã sử dụng

dispatch_async(dispatch_get_main_queue(), ^{ 

    [self.navigationController pushViewController:splitViewController animated:NO]; 

}) 

thay vì

[self.navigationController pushViewController:splitViewController animated:NO]; 

Tôi sử dụng này chỉ dành cho iOS6 nhìn khác đầu tiên sẽ là trong giây lát cho thấy trong OS < iOS6.

+0

Chương trình này hoạt động hoàn hảo trong mọi điều kiện \ m/ – Suhaiyl

+0

Chỉ có một vấn đề tương tự trên iPhone trong iOS 6 (iOS 5 là tốt), nơi các modals được đẩy vào Bộ điều khiển Điều hướng khi khởi động sẽ không hiển thị phía sau thanh trạng thái mờ. Điều này giải quyết nó. Cảm ơn! –

1

Có thể [UIViewController statusBarHidden] được đặt thành NO trên bộ điều khiển chi tiết của bạn?

+0

Thật không may là không. – MattyG

+0

@MattyG Rất đáng để thử. 20px luôn trông giống như một cái gì đó với thanh trạng thái. – Sulthan

+0

yeah cảm ơn vì điều đó. Tôi đồng ý, có vẻ như thanh trạng thái có liên quan quá. Đó là lý do tại sao tôi đã thử xóa thanh trạng thái số liệu mô phỏng. Tôi không chắc chắn làm thế nào để đi ra chẩn đoán vấn đề bây giờ. – MattyG

1

Xcode 4.5 có thói quen áp dụng autolayout, có thể là nguyên nhân gây ra một số nỗi đau của bạn - kiểm tra điều này và thử bỏ chọn nó.

+0

autolayout không được chọn. Cảm ơn anyway cho đề nghị. – MattyG

2

Tôi giả sử bạn không làm gì để thực hiện khung của chế độ xem trong mã, đúng không? Đó là bộ điều khiển của chế độ xem đang thực hiện tất cả bố cục? Nếu vậy, bạn đã thử sửa đổi với -wantsFullScreenLayout chưa?

Khi trình điều khiển chế độ xem hiển thị chế độ xem, thông thường sẽ thu hẹp chế độ xem đó để khung của nó không chồng lên thanh trạng thái của thiết bị. Đặt thuộc tính này thành YES làm cho bộ điều khiển chế độ xem có kích thước chế độ xem của nó sao cho nó lấp đầy toàn bộ màn hình, bao gồm cả vùng bên dưới thanh trạng thái. (Tất nhiên, để điều này xảy ra, cửa sổ lưu trữ bộ điều khiển chế độ xem phải có kích thước để lấp đầy toàn bộ màn hình, bao gồm cả khu vực bên dưới thanh trạng thái.) Bạn thường đặt thuộc tính này là YES trong trường hợp bạn có trạng thái mờ thanh và muốn nội dung của chế độ xem của bạn hiển thị phía sau chế độ xem đó.

Nếu thuộc tính này là CÓ, chế độ xem không được định lại kích cỡ theo cách sẽ làm cho nó bị làm chậm thanh tab nhưng được thay đổi kích thước thành gạch dưới thanh công cụ mờ. Bất kể giá trị của thuộc tính này, các trình điều khiển điều hướng luôn cho phép các khung nhìn che phủ các thanh điều hướng mờ.

Giá trị mặc định của thuộc tính này là NO, làm cho khung nhìn được đặt ra sao cho nó không làm chậm thanh trạng thái.

Tâm trí bạn, -wantsFullScreenLayout chỉ thực sự ảnh hưởng đến bộ điều khiển chế độ xem gốc của cửa sổ. Vì vậy, nếu điều này khắc phục vấn đề của bạn (và bạn không làm bất cứ điều gì ngốc nghếch với hệ thống phân cấp bộ điều khiển xem của bạn), hãy gửi một lỗi với Apple!

1

bạn đã đặt thuộc tính autosizng của chiều cao trong tệp xib hoặc lập trình, nếu có hãy thử xóa chúng và xem liệu nó có giúp được sự cố hay không.

0

Có thể trợ giúp. Tôi cũng bị ảnh hưởng cùng một vấn đề tôi đã giảm kích thước của chế độ xem trong ví dụ của mình: Tôi có chiều cao 480px trong XIB cho Ứng dụng iPhone và tôi giảm kích thước xuống 460px. Xin vui lòng làm tương tự cho iPad không chắc chắn nhưng có thể giúp đỡ.

0

Tôi gặp vấn đề tương tự khi tôi cố gắng trình bày một chế độ xem khác trong phương thức ViewWillAppear. Tôi đã giải quyết nó bằng cách di chuyển mã presentViewController của tôi sang phương thức ViewDidAppear. Hy vọng nó sẽ giúp.

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