Не могу понять, где начать создавать подклассы UIControl! - PullRequest
0 голосов
/ 25 августа 2009

Я хочу создать свой собственный элемент управления, который будет состоять из нескольких UILabels и пары UITextFields. Проблема в том, что я не уверен, с чего начать! Могу ли я напрямую создать подкласс UIControl, затем создать свои подпредставления и добавить их в главное представление в init :? Или я использую layoutSubviews? И нужно ли мне переопределить drawRect:?

Я привык создавать классы "Controller", которые будут обрабатывать добавление подпредставлений, но если я создаю подкласс UIControl, я не уверен, какие методы переопределить, чтобы настроить все!

Я никогда не делал этого раньше, поэтому я очень ценю несколько указателей!

Ура!

1 Ответ

6 голосов
/ 25 августа 2009

Вы уверены, что хотите UIControl? Класс UIControl предназначен для довольно простых, обычно многократно используемых элементов управления, таких как кнопки и текстовые поля, которые должны поддерживать ограниченный набор событий (например, «коснулся» или «значение изменено»). Если вы просто пытаетесь создать способ сгруппировать несколько видов вместе, вместо этого следует использовать UIView.

В любом случае, вот что вы должны сделать:

  1. Создайте свои подпредставления и установите большинство их свойств в -initWithFrame:. Сохраните их в переменных экземпляра и добавьте их как подвиды self.

  2. Установите их кадры в -layoutSubviews, рассчитав их на основе self.bounds. Это будет вызываться каждый раз, когда ваш вид изменит размер, в том числе после -initWithFrame:.

Вам не нужно реализовывать -drawRect:, если только вам не нужно выполнять пользовательское рисование с помощью функций Core Graphics.

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