iPhone UIAutomation: динамически добавленные элементы пользовательского интерфейса не отображаются при выполнении logElementTree () - PullRequest
1 голос
/ 17 июня 2011

У меня есть следующая иерархия элементов пользовательского интерфейса:

UITableView
- UITableViewCell
-- UIScrollView
--- UIWebView
--- UIWebView
--- UIWebView

Теперь, когда я первоначально загружаю страницу, это все, что отображается.Но, если пользователь прокручивает вправо, дополнительные UIWebViews будут загружаться, когда пользователь встречает их.Например, если пользователь должен был несколько раз прокрутить вправо, поскольку четвертый 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}}]

Но, если я прокручиваю вправо и дополнительные UIWebViews добавляются к трем существующим UIWebViews, новые элементы UIWebView не отображаются при выполнении logElementTree(),Я заметил, что координата х была обновлена.Например, после прокрутки до четвертого элемента в UIScrollView 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}}]

Для справки, вновь созданные UIWebViews добавляются в UIScrollView путем вызова [scrollView addSubView:<new_UIWebView_object>].Что мне нужно сделать, чтобы вновь созданные UIWebViews отображались при выполнении logElementTree()?

Спасибо.

1 Ответ

0 голосов
/ 26 июня 2011

Чтобы обойти эту проблему, вам нужно использовать функцию UIAccessibilityPostNoficiation, когда элемент добавляется или удаляется. UIAccessibilityLayoutChangedNotification уведомление, вероятно, будет работать. В противном случае попробуйте UIAccessibilityScreenChangedNotification.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...