2012-02-02 2 views
1

Есть ли простой способ прослушивания, когда ребенок или подзаголовок был добавлен в UIView?Objective C - addobserver для UIView, добавляющего subviews?

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

Редактировать Это легко достигается с помощью советы @Alkimake ниже (TextHolderClass). Я создал пользовательский UIView подкласс и установить класс в UIView в Interface Builder равным TextHolderClass

Спасибо за вашу помощь, я знаю, что это должно было быть очевидно :)

ответ

2

UIView имеет 2 метода для вызова после взаимодействия с объектом. Просто создайте свой собственный класс UIView и реализуйте эти методы, которые вам подходят. И используйте свои собственные CustomView

- (void)didAddSubview:(UIView *)subview; 
- (void)willRemoveSubview:(UIView *)subview; 
+0

Привет, я сделал это, и это сработало очарование. То, чего я пытался добиться в первую очередь, - это прослушать, когда добавлено subview и переместить изображение на моем интерфейсе UIViewController справа от добавленного подзаголовка. Каков наилучший способ сделать это сейчас, когда я использую отдельный класс для ответа на событие? –

+0

Можете ли вы быть более ясными? Я думаю, что я не получил :) – Alkimake

+0

Я отсортировал этот вопрос сейчас, к счастью [здесь] (http://stackoverflow.com/questions/9115745/manipulating-ui-elements-from-within-a-class-method) –

4

UIView методы могут помочь вам:

- (void)willMoveToSuperview:(UIView *)newSuperview 
+0

Должно ли это называться автоматически? Как и в том, могу ли я добавить этот метод к моему файлу реализации, и его следует вызывать, когда subview добавляется/удаляется в/из UIView? –

+0

Да, если вы реализуете этот метод в своем подклассе UIView, он будет вызван автоматически - однако этот метод вызывается, когда сам добавляется в супервизор, а не когда вы добавляете к нему subview. @Alkimake дал вам методы для этого. – bandejapaisa

Смежные вопросы