2010-01-27 36 views
5

Tôi có một UIViewController được khởi tạo với khung chính xác, tuy nhiên ở đâu đó trong mã của tôi, khung hình bị xáo trộn và tôi đang gặp khó khăn trong việc tìm ra nơi.Làm thế nào để phát hiện khi một UIView đã thay đổi kích thước?

Trong các trường hợp như vậy, nó thường có ích cho watch một biến trong trình gỡ lỗi, tuy nhiên tôi không có cách nào để truy cập thuộc tính khung nhìn - khung nhìn trong khung nhìn biến vì nó không phải là biến một tài sản (đáng ngạc nhiên đủ)

Khoan vào UIView trong màn hình biến hiển thị một vài điều nhưng không có gì tôi có thể liên quan đến khung, tôi nghĩ có lẽ đó sẽ là layer nhưng nó không phải là.

Có cách nào để xem các thay đổi trong API riêng tư không? Tôi đoán là không, vì các biến chủ yếu là 'ẩn' và vì vậy bạn không thể xác định chính xác cái gì là watch.

Cách khác, tôi có thể sử dụng phương pháp nào khác? Tôi đã thử subclassing UIView, thiết lập UIViewController của tôi xem để trỏ đến phân lớp này và phá vỡ các phương pháp setFrame nhưng nó dường như không hoạt động.

CHỈNH SỬA: phương thức UIView phân lớp con DID hoạt động, tôi chỉ phải đặt chế độ xem để trỏ đến lớp con thử nghiệm của mình trong viewDidLoad chứ không phải phương thức init. Để câu hỏi này mở ra vì tôi không chắc đây có phải là cách tốt nhất để tiếp cận loại vấn đề này không ...

Trả lời

0

Bạn có thể tạo một ivar, view2 và chỉ định nó cho chế độ xem của bạn theo phương pháp loadView. Điều đó sẽ cho phép bạn xem nó như một biến bình thường.

5

Subclass độ xem bạn muốn theo dõi và ghi lại các phương pháp setFrame của bạn:

@implementation MyTableView 

- (void)setFrame:(CGRect)frame; 
{ 
    NSLog(@"%@", frame); 
    [super setFrame:frame]; 
} 

@end 

Sau đó sử dụng trình gỡ lỗi để thêm một breakpoint để nó và kiểm tra khi nó được gọi. Cuối cùng, bạn sẽ thấy khi khung được thay đổi và thay đổi đến từ đâu.

+0

yea Tôi đã đề cập này trong câu hỏi ... – Sam

+0

Sam, cần làm việc. Nếu khung được thay đổi thì phương pháp này nên được gọi. Nếu nó không phải là vấn đề ở đâu đó ngược dòng. –

+6

Điều này có thể không được gọi khi sử dụng các ràng buộc bố cục tự động. – kpozin

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