</ p>
あらすじ
カレンダーにイベントを表示するカスタムコントロールを作成したいと思います。
ドラフトは次のとおりです。
コンセプト
- 左下のボックスは垂直方向にスクロール可能です。右下のボックスは両方向にスクロール可能です。
- イベントビューを移動することができます。ビューをドラッグしているときに境界に近づくと、その方向に自動スクロールします。
- スクロール領域は、データベース内の最も早いイベントと最も遅いイベント、または特定の最大値に応じて有限になります。ただし、ユーザーがスクロールを続けると、それに応じてスクロール領域が拡大し、ユーザーがスクロールバックして新しいイベントを作成しなかった場合は折りたたみます。
- 下部にあるこの「2011年7月」ボタンはスクローラーとして機能します。ユーザーがスクロール領域の境界を超えて引っ張ると、それに応じて大きくなります。
- ヘッダーの月の名前は、次の月が移動するまで常にこの位置にとどまるため、その月の日のセルにまたがる長いセルであり、キャプションがフローティングになっています。
- ヘッダーの行と列は常に表示されます。
質問
私はカプチーノまたはココアのコントロールクラスの機能に少ししか精通していないので:カプチーノまたはココアクラスを直接使用できる場所、カプチーノ/ココアコントロールをサブクラス化するのが合理的である場所、およびカスタムコントロールを最初から作成する必要がある場所?
編集:私の考え
垂直分割器を備えたSplitViewでコントロールを分割するのは合理的だと思います。左側のサブビューの左側のヘッダー列にTableViewを使用できます。そして、垂直スクロールを右側で発生するものと同期させることができました。
でも、右側の景色はよくわかりません。TableViewについて考えましたが、実際には、セルを背景グリッドとしてのみ必要とします。したがって、ヘッダー行を2つにして、目的のスクロール動作を実装するのは難しいと思います。したがって、最善の方法は、おそらく完全に新しいカスタムビューを作成することです。しかし、もう一度質問します。カプチーノまたはカプチーノをサブクラス化するのはどこが合理的ですか。Cocoaコントロールと、カスタムコントロールを最初から作成する必要がある場所はどこですか?