1

兄弟が親であり、私の脳が完全に揚げられている瞬間に、私はどうやら渦巻くUIView地獄地帯にいるようです。

これが取引です。本当に、本当に簡単です。N個のリーフノードの兄弟サブビューを持つコンテナビューがあります。ここにトリックはありません、とても簡単です。私は次のことをします:

// occludedPageSetは、画面外にあるため//完全に隠されているビューに対応するビュータグのセットです。これは幾何学的に決定されました。

for (NSNumber *n in occludedPageSet) {

            // Point to a view corresponding to this tage
    UIView *v = [self.containerView viewWithTag:[n integerValue]];

            // Hide this view
    if (v.hidden == NO) {

                    NSLog(@"View %d is occluded. Hide it.", [n integerValue]);
        v.hidden = YES;

    } // if (v.hidden == NO)


} // for (occludedPageSet)

かなり飼いならされたもの。残念ながら、すべての兄弟ビューが消えます!なに?!?これはどのように可能ですか?

ここでvの[保持]/[リリース]が必要ですか?私は困惑しています。

困惑した、ダグ

4

3 に答える 3

4

私はここで問題について何かを逃していますか?ビューを非表示にすると、サブビューとして保持しているビューも非表示になるのは当然のことです。結局のところ、コンテナビューを見ることができません...

箱に10個入れて見えなくしたとしたら、箱の中の物が見えなかったということではないでしょうか。同様に、マントだけが見えず、下の人が見えない場合、不可視のマントはほとんど役に立ちません...

表示するものと表示しないものが必要な場合は、コンテナではなく特定のアイテムで作業してください。

于 2009-10-05T08:17:57.840 に答える
1

どうやら、すべてのビューがoccludedPageSetに含まれているか、すべてのタグが同じnです。

NSNumber *n in occludedPageSet

または、vビューの1つが残りの親であるため、それを非表示にすると、すべてが非表示になります。

于 2009-10-05T00:48:08.230 に答える
0

self.containerViewのタグが、子のタグとは完全に異なるものであることを確認してください。viewWithTagを呼び出すと、指定されたタグである場合にレシーバーが返され、すべてのビューが非表示になります。反復をステップスルーするか、vが指すアドレスを出力して、閉塞する必要があるものを閉塞していることがわかるようにします。

于 2009-10-05T04:06:19.673 に答える