I有する3つの容器のUITableViewの上のUIViewを移動 - 触れる上部のUIViewはまだテーブルの行を選択
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---- | |
| | ----------- |
----------------------
Iは、コンテナBのフレームをシフト(及びIが示す場合、イベントが発生したが含まのUIView Bの右側にある(Oとラベル付けされた)ビュー(これは重要ではない)。今、コンテナB、コンテナA
O - Other view (unimportant)
$ - original location of touch @
----------------------
| | | |
| --|* B | |
| --| | |
| -A|------------ |O|
| --||@-$--C----| | |
| |------------ | |
----------------------
を重ねている。しかし、私は行(@)の左端をタッチすることで、コンテナCののUITableViewで行を選択しようとすると、今、タッチがコンテナAののUITableViewによって登録されています。あるいは、テーブル(*)の上のビューをタッチしても、Aの対応する行が選択されます。
コンテナAのUITableViewの幅を変更することで、問題の一部を解決できます。しかし、私はまだテーブルC(@)に触れると、Cの行が選択されない問題があります。それは、テーブルCの開始点が古い場所($)にあるようなものです。
新しい@場所でタップすると、Cで正しい行が選択されるようにするにはどうすればよいですか?いくつかのコードと
=======
EDIT:
これは、コンテナBにそれはBのフレームの非常にまっすぐ進むアニメーションだ私はコードです。 self.viewはコンテナBのUIViewです。
ストーリーボードを通じてすべてのビューが画面に表示されます(「その他の」コンテナは非表示になっています)。その他のコンテナは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];
}
];
のサブビューである私はあなたが見たい、他のどのようなコード教えてください。
非常に良い説明を、私は、我々はあなたがあなたのコンテナを表示してアニメーション化するために使用するコードを表示する必要があると思いますこの問題を解決してください... – Beppe
@Beppe、私はアニメーションのためのコードを追加しました。 – David