UI 要素の次の階層があります。
UITableView
- UITableViewCell
-- UIScrollView
--- UIWebView
--- UIWebView
--- UIWebView
これで、ページが最初に読み込まれると、これだけが表示されます。ただし、ユーザーが右にスクロールすると、追加の UIWebView が表示されたときに読み込まれます。たとえば、ユーザーが右に複数回スクロールすると、4 番目の UIWebView が UIScrollView に挿入されます。
ここで、これらすべての要素を含む画面を最初にロードしたときに、ページで logElementTree() を実行すると、リストしたすべての要素が表示されます。たとえば、次の出力が表示される場合があります。
4) UIATableView [name:Empty list value:rows 1 to 1 of 1 rect:{{x:0, y:64}, {width:320, height:416}}]
5) UIATableCell [name:OfferCardTableViewCell value:(null) rect:{{x:0, y:160}, {width:320, height:416}}]
6) UIAWebView [name:(null) value:(null) rect:{{x:0, y:160}, {width:320, height:418}}]
6) UIAWebView [name:(null) value:(null) rect:{{x:320, y:160}, {width:320, height:418}}]
6) UIAWebView [name:(null) value:(null) rect:{{x:640, y:160}, {width:320, height:418}}]
しかし、右にスクロールして追加の UIWebView が 3 つの既存の UIWebView に追加されると、実行時に新しい UIWebView 要素が表示されませんlogElementTree()
。x 座標が更新されていることに気付きました。たとえば、UIScrollView の 4 番目の項目までスクロールした後、UIAWebViews は次の座標で表示されます。
6) UIAWebView [name:(null) value:(null) rect:{{x:-960, y:160}, {width:320, height:418}}]
6) UIAWebView [name:(null) value:(null) rect:{{x:-640, y:160}, {width:320, height:418}}]
6) UIAWebView [name:(null) value:(null) rect:{{x:-320, y:160}, {width:320, height:418}}]
参考までに、新しく作成された UIWebView は、 を呼び出すことによって UIScrollView に追加され[scrollView addSubView:<new_UIWebView_object>]
ます。実行時に新しく作成された UIWebViews が表示されるようにするには、どうすればよいlogElementTree()
ですか?
ありがとうございました。