2011-06-19 45 views
6
// Create and add a sub view 
CGRect viewRect = CGRectMake(0, 0, 200, 200); 
UIView *a_sub_view = [[UIView alloc] initWithFrame : viewRect]; 

[window addSubview : a_sub_view]; 

Sau khi thêm 3 dòng mã trên, xcode không tạo ra lỗi hoặc cảnh báo. Nhưng quan điểm phụ không hiển thị chút nào. Chương trình mẫu có vẻ như đang chạy chính xác như trước. Hy vọng rằng ai đó có kiến ​​thức có thể giúp đỡ.addSubview không hoạt động

+2

Đó là thực sự chính xác mã của bạn ? Nếu vậy, 'a_sub_view' là một' UIView' đơn giản, không thực sự vẽ bất kỳ thứ gì. Bạn cần khởi tạo một lớp con tùy chỉnh hoặc một số lớp con được xây dựng sẵn khác như 'UIButton'. –

+0

Loại đối tượng nào là 'cửa sổ'? – 0x90

+0

cửa sổ là UIWindow, trước đó tôi đã thử "addSubview" vào cơ sở UIView của cửa sổ, nhưng cũng "không hiển thị". – Stanley

Trả lời

15

tôi thấy nó hữu ích để thiết lập màu nền vì vậy tôi biết nơi xem là và ranh giới.

a_sub_view.backgroundColor = [UIColor redColor]; 

Trong ví dụ của bạn, bạn tạo chế độ xem trống để bạn sẽ không 'thấy' bất kỳ thứ gì.

+1

cảm ơn bạn :) ý tưởng hay là –

3

cửa sổ dự kiến ​​chế độ xem của chế độ xem sẽ được thêm vào.

bạn có thể thêm các bản xem trước vào chế độ xem hiện tại.

như vậy trong ví dụ sử dụng của bạn:

[self.view addSubview:a_sub_view]; 
-1
[self.view addSubView: a_sub_view]; 
3

Tôi đang sử dụng này để "tìm" cửa sổ:

UIWindow *window = [[[UIApplication sharedApplication] delegate] window]; 
[window addSubview:myView]; 

này cũng làm việc cho tôi, nhưng nó là xấu xí một chút:

[self.navigationController.tabBarController.view addSubview:myView]; 

Để giải thích điều thứ hai, Tôi phải "theo dõi" các bộ điều khiển trở lại chế độ xem "trên cùng". (. Ứng dụng của tôi có một thanh tab với một bộ điều khiển chuyển hướng bên trong tab hiện tại)

2

Nếu bạn đang làm việc với iOS 5 & trên, bạn phải làm như sau:

[self.window.rootViewController.view addSubView:viewObject]; 
+0

Câu trả lời đúng .... phần còn lại của chúng không hoạt động trong mọi tình huống. – iNeo