Синопсис
Я хочу создать собственный элемент управления, который отображает события в календаре.
Вот черновик:
Концепт
- Нижнее левое поле можно прокручивать по вертикали. Нижнее правое поле прокручивается в обоих направлениях.
- Можно перемещать виды событий. Если они приближаются к границам во время перетаскивания, представление автоматически прокручивается в этом направлении.
- Область прокрутки конечна в соответствии с самым ранним и последним событием в базе данных или определенным максимумом. Но если пользователь продолжает прокручивать, область прокрутки соответственно увеличивается и схлопывается, если пользователь прокручивает назад и не создает новое событие.
- Эта кнопка «Июль 2011» внизу действует как прокрутка. Если пользователь вытягивает его за пределы области прокрутки, он соответственно увеличивается.
- Название месяца в заголовке всегда остается в этой позиции до тех пор, пока не переместится следующий месяц, поэтому это длинная ячейка, которая охватывает ячейки дня месяца с плавающим заголовком.
- Строки и столбцы заголовков всегда видны.
Вопрос
Поскольку я лишь немного знаком с возможностями классов управления Cappuccino или Cocoa: где я могу напрямую использовать классы Cappuccino или Cocoa, где разумно создавать подклассы элементов управления Cappuccino/Cocoa и где мне нужно писать пользовательские элементы управления с нуля ?
Изменить: Мои мысли
Я думаю, что разумно разделить элемент управления с помощью SplitView с вертикальным разделителем. Я мог бы использовать TableView для левого столбца заголовка в левом подпредставлении. И я мог бы синхронизировать вертикальную прокрутку с тем, что происходит с правой стороны.
Но я не уверен насчет вида с правой стороны. Я думал о TableView, но на самом деле мне нужны были только ячейки в качестве фоновой сетки. Таким образом, я думаю, было бы сложно иметь две строки заголовка и реализовать желаемое поведение прокрутки. Таким образом, лучший способ, вероятно, создать совершенно новое пользовательское представление. Но опять же вопрос: где разумно разделить капучино на подклассы, соответственно. Какао-элементы управления и где я должен писать пользовательские элементы управления с нуля?