2010-03-28 38 views
8

Tôi có thể truy cập và hiển thị self.view và xem khung trong nhật ký nhưng khi tôi cố truy cập self.view.frame tôi nhận được giá trị rỗng. Dưới đây là các dữ liệu ghi nhận củaMục tiêu-C Tôi có thể truy cập self.view nhưng không self.view.frame

NSLog(@"Show self.view:%@",self.view); 
NSLog(@"Show self.view.frame:%@",self.view.frame); 

-

2010-03-28 11:08:43.373 vivmed_CD_Tab[20356:207] Show self.view:<UITableView: 0x4001600; frame = (0 0; 320 583); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x3b21270>> 
2010-03-28 11:08:43.373 vivmed_CD_Tab[20356:207] Show self.view.frame:(null) 

bất cứ ai có thể giải thích lý do tại sao self.view.framenull nhưng self.view cho thấy một khung? Mục tiêu của tôi là thay đổi kích thước khung hình.

Chúc mừng, Grant

Trả lời

19

Một vấn đề trong mã bạn đã đăng là bạn đang in khung (một CGRect) như một đối tượng, trong đó sẽ không hoạt động. Hãy thử:

NSLog(@"Show self.view.frame: %u", self.view.frame); // as a pointer 

NSLog(@"Show self.view.frame: %@", NSStringFromCGRect(self.view.frame)); // as a string 
+4

Đúng vậy! Hai trường đầu tiên của CGRect sẽ bằng không, vì vậy thời gian chạy Obj-C diễn giải nó như một đối tượng với một con trỏ lớp rỗng. Nếu khung hình có nguồn gốc khác, bạn sẽ bị rơi. – codewarrior

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