Добавить подпредставление в окно вместе с определенным ключом для переключения видимости? - PullRequest
0 голосов
/ 12 июля 2010

Я выяснил, как создать новый элемент пользовательского интерфейса, к которому я прикасаюсь, и добавить его, используя [self.view addSubview: [uilabel reference]]. Однако, если я нажму в том же месте, он просто добавит другое подпредставление поверх текущего.

Я могу создать уникальный ключ для каждой части сетки, которую я создаю (и, таким образом, размещаю подпредставления). Можно ли как-то пометить это подпредставление клавишей, чтобы я мог переключать видимость на нем?

Вот часть кода:

CGRect rectNote = CGRectMake(notePosX, notePosY, noteFrameWidth - 2, noteFrameHeight - 3);

UILabel *rectNoteLabel = [[UILabel alloc] initWithFrame:rectNote];

//label settings

[self.view addSubview:rectNoteLabel];

Очевидно, я вычисляю позицию метки, которая может быть использована в качестве ключа для подпредставления?

Ответы [ 2 ]

1 голос
/ 12 июля 2010

UIview имеет свойство tag, так что да, вы можете пометить представление и найти его позже.

http://developer.apple.com/iphone/library/documentation/uikit/reference/UIView_Class/UIView/UIView.html#//apple_ref/doc/uid/TP40006816-CH3-SW25

Затем вы можете вызвать [self.view viewWithTag: blah], чтобы получить его обратно.

если вы просто пытаетесь выяснить, существует ли подпредставление, где вы нажимаете, то Джонатан Гринспан уже упомянул -hitTest:

http://developer.apple.com/iphone/library/documentation/uikit/reference/UIView_Class/UIView/UIView.html#//apple_ref/doc/uid/TP40006816-CH3-BBCCAICB

0 голосов
/ 12 июля 2010

Вы можете проверить наличие подпредставления в этом месте, отправив -hitTest: в родительское представление.

Может быть проще сохранить изменяемый массив или установить его в вашем управляющем классе и проверитьего содержимое до фактического добавления нового представления.(Стоимость итерации по массиву будет такой же, как стоимость итерации по подпредставлениям родительского представления, и в любом случае это, вероятно, не будет значительным.)

...