3

関数 viewWithTag で奇妙な動作が発生しました。私のストーリーボードはそのように見えます:

-viewController
--UIScrollView1 (UIView である必要がありますが、まだ変更されていません)
---タグ1~11のオブジェクト
--- タグ 0 を持つ他のオブジェクト
--UIScrollView2 (UIView である必要がありますが、まだ変更されていません)
---タグ1~11のオブジェクト
--- タグ 0 を持つ他のオブジェクト
私のコードでは、 [UIScrollView1 wiewWithTag:(1 to 11)] を実行します (毎回適切なオブジェクトとしてキャストされ、うまく機能します。UIScrollView2 でも同じことを行いますが、UIScrollView2 のたびに viewWithTag が返されるため、タグ付けされたオブジェクトと一致することはありません。

デバッグ目的のためだけに、UIScrollView2 の更新を行わず、他の値 UIScrollView1 で更新しようとすると、1 つのオブジェクト、UIImageView (唯一のオブジェクト) に対してのみ UIScrollView1 が返されます。しかし、すべての UILabel は再び正常に動作します。

誰かが私を助ける手がかりを持っていましたか?

PS:タグオブジェクトは10回ほどチェックされ、次のような関数を使用します:-(void)updateWithScroll:(UIScrollView *)myScrollなので、1または2と同じです:(

前もって感謝します、
ダミアン

4

2 に答える 2

1

高速列挙subviewsまたは別のループを使用して、自分でサブビューを参照してみてください。

その動作を予期していなかったときに同じ問題に遭遇しましたが、ルートビュータグを保持せずに、使用されたことのない値である -1 に設定するという選択肢があります。

于 2014-04-07T16:08:46.583 に答える
0

UIScrollView2 のタグは 0 であると想定しているため、タグ 0 を持つ最初のビューは UIScrollView2 自体です。

おそらく、UIScrollView2 のサブビューごとに異なるタグを付け、常に UIScrollView2 のタグとは異なるものにする必要があります。

たとえば、scrollView のタグには 0 を保持し、サブビューには 1,2,3... を保持できます。

于 2013-12-20T09:53:28.777 に答える