Agregué un UITableView como subvista a una clase UIView personalizada en la que estoy trabajando. Sin embargo, noté que siempre que me desplazo por la tabla llama a mis clases layoutSubviews. Estoy bastante seguro de que es el UIScrollview que la tabla está heredando de lo que realmente está haciendo esto, pero quería saber si hay una forma de desactivar esta funcionalidad y, de no ser así, ¿por qué está sucediendo? No entiendo por qué cuando se desplaza una vista de desplazamiento necesita su super visión para diseñar sus subvistas.UIScrollview llamando a superviews layoutSubviews when scrolling?
Código:
@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
Pero dime, ¿por qué lo haces de esa manera ¿Por qué estás agregando vista de tabla a vista personalizada? – Manjunath
Larga historia, estoy creando un PickerView personalizado que permite una selección múltiple y tiene un tamaño diferente al estándar. Básicamente muestra un fondo PickerView transformado con una tabla clara en la parte superior – marchinram
¿Has mirado esto? El chico parece tener el problema opuesto, en ese layoutSubviews IS NOT called. También mencionó una solución, que si la inviertes, podría funcionar para ti. :) http://stackoverflow.com/questions/728372/when-is-layoutsubviews - llamado – Kalle