2013-02-09 33 views
5

Dưới đây là mã của tôi từ ứng dụng đại biểu trong didFinishLaunchingWithOptionsKhông thể thêm subview bổ sung cho uiwindow ngoài rootviewcontroller

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; 

CGRect windowFrame = self.window.frame; 
UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, windowFrame.size.height-100, windowFrame.size.height, windowFrame.size.height)]; 
bottomView.backgroundColor = [UIColor redColor]; 
[self.window addSubview:bottomView]; 

// self.viewController.view.frame = CGRectMake(0, 0, windowFrame.size.width, windowFrame.size.height-100); 

self.window.rootViewController = self.viewController; 
[self.window makeKeyAndVisible]; 

return YES; 

My ViewController được Freeform và chiều cao của nó là chỉ quanh 245. Như bạn có thể thấy tôi đang cố gắng để đưa chế độ xem dưới cùng có chiều cao 100 điểm.

Tôi chỉ đang cố gắng tìm hiểu điều này.

Nhưng chế độ xem luôn làm đầy toàn bộ màn hình. Nếu tôi nhận xét ra thiết lập xem điều khiển như là cửa sổ rootviewcontroller tôi có thể nhìn thấy đáy của tôi có trên màn hình.

Tôi đang làm gì sai? Làm ơn cho lời khuyên.

Cảm ơn.

+0

Tại sao bạn muốn chế độ xem dưới cùng này là chế độ xem phụ của cửa sổ thay vì chế độ xem của viewController? Bạn đang cố gắng để thực hiện? – rdelmar

+0

Tôi đang cố gắng để xem nếu nó có thể luôn luôn có một thanh công cụ ở dưới cùng của các cửa sổ trong khi tôi có thể chuyển đổi viewcontroller xem. Sau đó, tôi đã tìm ra rằng dễ dàng có một tab ở dưới cùng và thay thế các thanh con của thanh tab thành một cá thể thanh công cụ. – Saran

Trả lời

3

Thay vì

self.window.rootViewController = self.viewController; 

khi tôi đang

[self.window addSubview:self.viewController.view]; 

đã cho tôi kết quả mong đợi và nó điều chỉnh kích thước hình tự do.

Nó xuất hiện khi được đặt làm trình quản lý rootview nó lấp đầy toàn bộ màn hình có sẵn bất kể kích thước freeform được đặt trên XIB.

2

viết chỉ có một sentance

[self.window bringSubviewToFront: bottomView]; 

HOẶC

Thêm bottomView đến cửa sổ như,

[[[[UIApplication sharedApplication] delegate] window] addSubview:bottomView]; 
+0

Nhưng tại sao khung nhìn chế độ xem tự do chỉ có chiều cao 245 điểm chiếm toàn bộ màn hình? Tôi hy vọng xem viewcontroller chiếm top 245 điểm chiều cao và bottomview chiếm dưới 100 điểm chiều cao và màn hình màu đen ở giữa. Đó không phải là giả sử để xảy ra? – Saran

0

Tôi không chắc chắn lý do tại sao bạn đang cố gắng để làm điều này, nhưng cài đặt freeform trong IB (ít nhất là cho các tệp xib) dường như chỉ dành cho mục đích bố trí. Nó không thực sự ảnh hưởng đến kích thước bạn nhận được khi lượt xem tải. Nếu bạn muốn nó ngắn hơn, sau đó đặt khung của nó trong phương thức viewDidAppear: trong ViewController, không phải trong ủy nhiệm ứng dụng - khung nhìn chưa được tải ở đó, vì vậy còn quá sớm để đặt khung.

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