mam UIView który zawiera trzy pojemnikiPrzenoszenie UIView na górze UITableView - dotykając górnej UIView jeszcze wybiera wiersze tabeli
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---- | |
| | ----------- |
----------------------
zachodzi zdarzenie, gdzie przesunięcie ramki pojemnika B (i pokazują widok (oznaczony literą O) na prawo od B, co nie jest ważne). Teraz Container B nakładających pojemniku
O - Other view (unimportant)
$ - original location of touch @
----------------------
| | | |
| --|* B | |
| --| | |
| -A|------------ |O|
| --||@-$--C----| | |
| |------------ | |
----------------------
ale teraz, gdy próbuję wybrać wiersz UITableView pojemnika C poprzez dotykanie lewą krawędź wiersza (@), dotyk jest zarejestrowany przez pojemniku w UITableView. Lub nawet jeśli dotknę widoku nad tabelą (*), wybierany jest odpowiedni wiersz w A.
Mogę rozwiązać część problemu, zmieniając szerokość UITableView kontenera A. Ale nadal mam problem, jeśli dotknę tabeli C (@), wiersz C nie wybierze. To tak, jak na początku tabeli C znajduje się w starej lokalizacji ($).
Co mogę zrobić, aby stukając w nowej lokalizacji @ wybrać właściwy wiersz w C?
=======
EDIT z kodem:
Jest to kod mam w pojemniku B. Jest to bardzo prosta animacja ramce B.. self.view to UIView kontenera B.
Wszystkie widoki są na ekranie ("inny" kontener jest ukryty) w Storyboard. Innym kontem jest wyszczególnienie 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];
}
];
Proszę dać mi znać, jaki inny kod chcesz zobaczyć.
Bardzo dobre wytłumaczenie, ale myślę, że musimy zobaczyć kod używany do wyświetlania i ożywiać swoje pojemniki do rozwiązać ten problem ... – Beppe
@ Beppe, dodałem kod do animacji. – David