Tôi đang triển khai ngăn chứa UIViewcontroller. Trong ví dụ dưới đây tôi đặt kích thước khung của các bộ điều khiển con trong bộ điều khiển gốc. Chế độ xem con xuất hiện dưới dạng kích thước tôi đã đặt, tuy nhiên khi tôi kiểm tra giới hạn của nó trong vùng chứa1, báo cáo có kích thước khác với kích thước tôi đã đặt.xem kích thước khung điều khiển trong bộ điều khiển con
Rootcontroller (container)
- (void)viewDidLoad
{
[super viewDidLoad];
self.containA = [[Container1 alloc]init];
self.containB = [[Container2 alloc]init];
self.containA.view.frame = CGRectMake(50, 50,50, 50);
self.containB.view.frame = CGRectMake(50, 50, 300, 300);
[self addChildViewController:self.containA];
[self addChildViewController:self.containB];
[self.view addSubview:self.containA.view];
Container1
-(void)viewDidLoad {
[super viewDidLoad];
UIView *view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
//[self.view addSubview:view];
self.view = view;
self.view.backgroundColor = [UIColor redColor];
[view release];
NSLog(@"view dims %f %f",self.view.bounds.size.width,self.view.bounds.size.height);
}
điều khiển đầu ra từ thùng chứa 1 nhìn mờ 768,000000 1004,000000
Tôi nghĩ vấn đề có liên quan đến việc thiết lập khung nhằm UIScreen màn hình chính] applicationFrame .Tôi đã xóa tất cả mã này để uiview được tạo tự động. Vấn đề vẫn còn ..
Tôi khá tự tin, btw, rằng thiết lập self.view bên trong viewDidLoad là một sai lầm. Có lẽ bạn đang nghĩ đến loadView? http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006926-CH3-SW1 –
@ctrahey đúng, bạn chắc chắn không được đặt chế độ xem của bạn bên trong '-viewDidLoad'. Nếu bạn đang lập trình tạo chế độ xem của mình thay vì sử dụng bảng phân cảnh hoặc ngòi bút, bạn phải tạo nó và đặt nó là '-loadView'. Ngoài ra, một bộ điều khiển xem nên thực sự không bao giờ thay đổi khung của khung nhìn. Bộ điều khiển chính hoặc cửa sổ luôn được thực hiện. –
cảm ơn cho hướng dẫn, vì vậy trong trường hợp của tôi, nơi tôi có hai bộ điều khiển xem lồng nhau trong một phụ huynh, làm thế nào tôi sẽ thiết lập kích thước của họ từ cha mẹ? Tôi có thể đặt nó trong mỗi bộ điều khiển chính nó, nhưng như bạn đã đề nghị và tôi sẽ đồng ý này isn không phải là cách thanh lịch nhất để làm mọi thứ. Xin lỗi cho 101 câu hỏi nhưng Im sử dụng để xem một bộ điều khiển cho mỗi màn hình, công việc ngăn chặn này là tất cả mới với tôi. – coasty