添付の画像のようなタイムバーを作成する必要があります.青い線はいくつかのアクションを示す日付です.大きな赤い矢印マークは、青い線のいずれかを選択するためのスライドに使用されます. 背景のバーは年ごとに分かれています。小さな赤い円は年を示しています。
どのように始めればよいですか?
ありがとう
添付の画像のようなタイムバーを作成する必要があります.青い線はいくつかのアクションを示す日付です.大きな赤い矢印マークは、青い線のいずれかを選択するためのスライドに使用されます. 背景のバーは年ごとに分かれています。小さな赤い円は年を示しています。
どのように始めればよいですか?
ありがとう
青いバーがあまり動かず、このビューのサイズを頻繁に変更する必要がない場合(通常、iPhoneの場合)、UIControl(またはUIView)をサブクラス化して自分で実装することをお勧めします。
NSDateオブジェクトと、などのメソッドを格納するNSArrayプロパティを使用しaddDate:
て、他のオブジェクト(View Controllerなど)からコンテンツを変更します。これらのメソッドでは、渡された日付を追加または削除し、呼び出して線を再描画します。removeDate:
removeDateAtIndex:
[self setNeedsDisplay];
スライダー上の日付の位置(ピクセル単位)を計算し、特定の座標で日付を計算するには、いくつかの方法が必要になります。これは簡単に実行できるはずです(基本的な線形補間)。
そして、赤いスライダーが青い線だけを指すことができると仮定して(それらの間ではなく)、現在選択されている日付にNSDateポインター変数を追加します。の中に
drawRect:メソッドでは、CoreGraphics関数を使用してすべての線を描画する必要があります。これについてサポートが必要な場合は、ドキュメントを参照してください。Appleには素晴らしいサンプルアプリもいくつかあります。
赤いスライダーを表示するには、UIPanGestureRecognizerを使用してカスタムUIImageViewを追加し、ジェスチャハンドラー内で垂直方向にのみ移動するようにします。または、トラック画像なしでUISliderを追加することも可能かもしれません(私はそれについて100%確信していません)。いずれの場合も、ユーザーが移動して最も近い青い線にジャンプさせたら、スライダーの位置を調整する必要があります。
大まかなアイデアは、 1. TimeBar 全体の長さを取得します。t とします。2. x=numberofYears*365 で割ります。t_eachday_pos=t/x とします。 3. 各日の位置を取得し、そのオフセットを daycount*t_eachday_pos として計算します。4. blueLine を customButton として追加します。5. 何らかのアクションを実行するには、x 日番号を渡します (例: 2 年目の 245 日など)。
これを試してみてください。アプリの1つで同じものを使用しましたが、機能しています