11

Tôi có một tùy chỉnh UIViewController và chế độ xem tương ứng trong tệp nib. Chế độ xem được thêm trực tiếp vào số UIWindow.Trình tạo giao diện: Đổi kích thước chế độ xem từ NIB

[window addSubview:customViewController.view]; 

kích cỡ của cửa sổ và xem là mặc định (480x320460x320 tương ứng).

Khi tôi tạo CustomViewController bên trong tập tin nib và kiểm tra "Resize Xem Từ NIB" trong IB Thuộc tính tab mọi thứ hoạt động tốt.

Nhưng khi tôi tạo CustomViewController programmmatically với initWithNibName nhắn quan điểm không được đặt trên cửa sổ một cách chính xác. Có một sọc trống ở phía dưới. Chiều cao của nó là 20px. Tôi thấy đó là do bù trừ thanh trạng thái.

IB xử lý điều đó với "Thay đổi kích thước chế độ xem từ NIB". Làm cách nào để mô phỏng chương trình đó?

Dường như IB sử dụng một số lớp con tùy chỉnh của UIViewController. Vì vậy, câu hỏi: cách "Thay đổi kích thước chế độ xem từ NIB" được triển khai ở đó?

Trả lời

1

Khi tôi muốn chắc chắn quan điểm bao trùm toàn bộ màn hình, tôi làm điều gì đó như thế này:

- (void) viewWillAppear: (BOOL) animated 
{ 
    [super viewWillAppear:animated]; 
    [[self view] setFrame:[[UIScreen mainScreen] bounds]]; 
} 

Cảm thấy như một hack, vì vậy tôi làm điều đó chỉ như là một phương sách cuối cùng, khi tôi có thể' Để khung nhìn hoạt động khác :)

+0

Đã cố gắng, nhưng nó không hoạt động đối với tôi. Cùng một sọc ở phía dưới xuất hiện. – alexey

+1

[[tự xem] setFrame: CGRectMake (0, 20, 320, 480)]; Công trình này, nhưng trông giống như một số loại mã cứng. [[UIScreen màn hình chính] giới hạn]] trả về (0, 0, 320, 480). – alexey

+0

Bạn nên sử dụng applicationFrame thay vì: self.view.frame = {CGPointZero, [UIScreen mainScreen] .applicationFrame.size]}; – Francescu

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