ho un UIView che contiene tre contenitorispostamento di un UIView in cima UITableView - toccare l'UIView superiore seleziona ancora righe della tabella
Container A - contains a UITableView
Container B - contains Container C and Container O
Container C - contains a UITableView
* - touch event
@ - touch event
----------------------
| | |
| ---*| B |
| --- | |
| -A- | ----------- |
| --- ||@----C---- | |
| | ----------- |
----------------------
Un evento si verifica quando sposto la cornice di contenitore B (e mostro un visualizza (etichettato O) a destra di B, che non è importante). Ora Container B si sovrappone Contenitore A
O - Other view (unimportant)
$ - original location of touch @
----------------------
| | | |
| --|* B | |
| --| | |
| -A|------------ |O|
| --||@-$--C----| | |
| |------------ | |
----------------------
Ma ora, quando cerco di selezionare una riga UITableView del contenitore C toccando il bordo sinistro della riga (@), il tocco è stato registrato da di Container A UITableView. O anche se tocco la vista sopra la tabella (*), viene selezionata la riga corrispondente in A.
Posso risolvere parte del problema modificando la larghezza del contenitore A di UITableView. Ma poi ho ancora il problema in cui se tocco tabella C (@), la riga C non seleziona. È come se l'inizio della tabella C si trovasse nella vecchia posizione ($).
Quindi, cosa posso fare in modo che toccando la nuova posizione @ selezioni la riga corretta in C?
=======
EDIT con un po 'di codice:
Questo è il codice che faccio nel container B. Si tratta di un'animazione molto semplice del telaio di B. self.view è UIView del contenitore B.
Tutte le viste sono sullo schermo (l'altro contenitore è nascosto) attraverso lo Storyboard. Altro contenitore è una visualizzazione secondaria di B.
// this code basically aligns the "other" container to the right/"offscreen" of
// Container B. Yes extending beyond the frame of B, but this part works fine
CGRect otherContainerFrame = self.otherContainerView.frame;
otherContainerFrame.origin.x = CGRectGetMaxX(self.view.frame);
[self.otherContainerView setFrame:otherContainerFrame];
[self.otherContainerView setHidden:NO];
// I'm going move Container B by the width of the "other" view
float offset = CGRectGetWidth(self.otherContainerView.frame);
CGRect frame = self.view.frame;
frame.origin.x -= offset;
[UIView animateWithDuration:.35
animations:^{
[self.view setFrame:frame];
}
];
prega fatemi sapere cosa altro codice che si desidera vedere.
Molto buona spiegazione, ma penso che abbiamo bisogno di vedere il codice utilizzato per mostrare e animare i vostri contenitori di risolvere questo problema ... – Beppe
@ Beppe, ho aggiunto il codice per l'animazione. – David