Tôi đã thêm UITableView làm chế độ xem con cho lớp UIView tùy chỉnh mà tôi đang làm việc. Tuy nhiên tôi nhận thấy rằng bất cứ khi nào tôi di chuyển bảng nó gọi các lớp của tôi layoutSubviews. Tôi khá chắc chắn của nó UIScrollview rằng bảng được kế thừa từ đó là thực sự làm điều này nhưng muốn biết nếu có một cách để vô hiệu hóa chức năng này và nếu không phải là lý do tại sao nó xảy ra? Tôi không hiểu tại sao khi bạn cuộn một scrollview nó cần superview của nó để bố trí subviews của nó.UIScrollview gọi superviews layoutSubviews khi cuộn?
Code:
@implementation CustomView
- (id)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
self.clipsToBounds = YES;
UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0.0, 15.0, 436.0, 132.0) style:UITableViewStylePlain];
tableView.dataSource = self;
tableView.delegate = self;
tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
tableView.backgroundColor = [UIColor clearColor];
tableView.showsVerticalScrollIndicator = NO;
tableView.contentInset = UIEdgeInsetsMake(kRowHeight, 0.0, kRowHeight, 0.0);
tableView.tag = componentIndex;
[self addSubview:tableView];
[tableView release];
}
return self;
}
- (void)layoutSubviews {
// This is called everytime I scroll the tableview
}
@end
Nhưng cho tôi biết tại sao bạn làm như vậy Tại sao các bạn thêm xem bảng để xem tùy chỉnh? – Manjunath
Câu chuyện dài, tôi đang tạo một PickerView tùy chỉnh cho phép nhiều lựa chọn và có kích thước khác với tiêu chuẩn. Về cơ bản nó hiển thị một nền PickerView chuyển đổi với một bảng rõ ràng trên đầu trang – marchinram
Bạn đã xem xét điều này? Anh chàng này dường như có vấn đề ngược lại, trong đó layoutSubviews ISN'T được gọi. Ông cũng đề cập đến một sửa chữa, mà nếu bạn đảo ngược nó, có thể làm việc ra cho bạn. :) http://stackoverflow.com/questions/728372/when-is-layoutsubviews-called – Kalle