2012-07-02 11 views

risposta

25

La risposta è in realtà semplice utilizzando KVO (Key Value Observing);

- (id)initWithFrame:(CGRect)frame tableView:(UITableView *)tableView 
{ 
    // .... 
    [self.tableView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld | NSKeyValueObservingOptionPrior context:NULL]; 
    // .... 
} 

- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 
{ 
    if ([keyPath isEqualToString:@"contentSize"]) 
    { 
     // Do something 
    } 
} 

Non sono ancora sicuro delle bandiere.

+0

So che è stato qualche tempo fa, ma grazie mille! – ryanwils

+11

Ricordatevi inoltre di '-removeObserver: forKeyPath: context:' – titaniumdecoy

+0

Di solito metto '-removeObserver: forKeyPath: context:' nel metodo '-dealloc'. –

0

Per coloro che non amano KVO:

- (void)setContentSize:(CGSize)contentSize { 
    [super setContentSize:contentSize]; 
    // Do something. 
} 

Sì, basta usare super per accedere al metodo genitore. Questo presuppone che si sottoclassi UIScrollview/TableView/CollectionView

Problemi correlati