Не удается получить доступ к элементам TableViewCell с помощью автоматизации пользовательского интерфейса - PullRequest
2 голосов
/ 02 декабря 2010

У меня есть пользовательская ячейка табличного представления, которая отображает детали конференц-связи.Тело конструктора ячейки приведено ниже:

- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString*) reuseIdentifier {
 if(self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier]) {
      self.contentView.isAccessibilityElement = YES;
      self.contentView.accessibilityLabel = @"Blah";

      conferenceNameLabel = [[UILabel alloc] initWithFrame:CGRectZero];
      conferenceNameLabel.adjustsFontSizeToFitWidth = YES;
      conferenceNameLabel.font = [UIFont systemFontOfSize:14];
      conferenceNameLabel.isAccessibilityElement = YES;
      conferenceNameLabel.accessibilityLabel = @"Name";
      [self.contentView addSubview:conferenceNameLabel];

      conferenceDateLabel = [[UILabel alloc] initWithFrame:CGRectZero];
      conferenceDateLabel.adjustsFontSizeToFitWidth = YES;
      conferenceDateLabel.font = [UIFont systemFontOfSize:14];
      conferenceDateLabel.isAccessibilityElement = YES;
      conferenceDateLabel.accessibilityLabel = @"Date";
      [self.contentView addSubview:conferenceDateLabel];

      recurringIconView = [[UIImageView alloc] initWithFrame:CGRectZero];
      [recurringIconView setContentMode:UIViewContentModeScaleAspectFit];
      recurringIconView.isAccessibilityElement = YES;
      recurringIconView.accessibilityLabel = @"Icon";
      [self.contentView addSubview:recurringIconView];

      [self setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
 }

 return self;

}

При использовании UI Automation я могу получить доступ к представлению содержимого с помощью метки доступности «Blah».Но я не могу получить доступ ни к одной из своих меток или к своему ImageView.Любая причина, почему я не могу получить эти элементы пользовательского интерфейса с помощью автоматизации пользовательского интерфейса?

1 Ответ

4 голосов
/ 06 декабря 2010

В вашем скрипте вы должны быть в состоянии выйти из иерархии доступности для каждой ячейки, используя logElementTree ():

cell.logElementTree();

Эти подпредставления должны появиться в этом зарегистрированном дереве вместе с их метками доступности.

Если вы как-то не можете адресовать эти элементы по их меткам, вы должны иметь возможность захватить их по их относительному положению в списке родственных видов:

var firstLabel = cell.elements()[0];

Я прохожу через UI Automationи покажу примеры того, как тестировать представления таблиц, как это, в моем курсе в iTunes U .

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