2

私はiOS開発の初心者なので、私の側からの愚かな願いかもしれません. それにもかかわらず、問題は次のとおりです。アプリの統計セクションを作成しています。これにより、ユーザーは特定の月と年を選択できるようになり、以前に入力したさまざまなエントリのその期間の統計結果が得られます。難しいのは、月コンポーネントの「年全体」の選択も実装したいということです。たとえば、ユーザーは月に「すべて」、年に「2013」を選択でき、2013 年全体の統計を取得できます。 . このサイトやグーグルでこのような例を見つけることができませんでした。これは、すべての場合において、DatePicker が日付の範囲ではなく特定の日付を返すためです。だから私は結論に達した、多分それだ」iOSでそのようなタスクを行う方法ではありませんか? 私が考えたオプションの 1 つは、'from' 用と 'til' 用に 1 つずつ、2 つの日付ピッカーを実装することでした。その期間の統計を表示します。iOSでこのようなタスクを通常どのように進めているか、アドバイスをいただければ幸いです。ありがとう。

更新:答えてくれてありがとう!

4

4 に答える 4

3

を使用するだけUIPickerViewです。ピッカーとデータ ソースをセットアップして、2 つのコンポーネントを持つようにします。1 つは月 (1 月から 12 月に「すべて」のオプションを加えたもの) 用で、もう 1 つはその年用です。

于 2013-04-28T06:21:15.550 に答える
3

rmaddyが言ったようにUIPickerViewを使用してください。そして、このような適切なデリゲート メソッドを使用して、ピッカーのデータ ソースをカスタマイズします。

日付ソースの設定 (例)

soureYear = [[NSMutableArray alloc] initWithObjects:@"2001",@"2002",@"2003",@"2004",@"2005",@"2006",@"2007",@"2008",@"2009",@"2010",@"2011",@"2012",@"2013", nil];
    soureMonth = [[NSMutableArray alloc] initWithObjects:@"Jan",@"Feb",@"Mar",@"Apl",@"May",@"Jun",@"July",@"Aug",@"Sep",@"Oct",@"Nov",@"Dec", nil];

デリゲート メソッド。

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 2;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
     if(component == 1)
         return [soureMonth count];
    else
        return [soureYear count];
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{

    if(component == 0)
        return [soureYear objectAtIndex:row];

    return [soureMonth objectAtIndex:row];
}

そして、このようにピッカーから選択されたアイテムを取得します

-(IBAction)selectedItem
{
  NSLog(@" %@", [soureYear objectAtIndex:[sample2 selectedRowInComponent:0]]);
    NSLog(@" %@", [soureMonth objectAtIndex:[sample2 selectedRowInComponent:1]]);
}

あなたは正確に期待されているものを手に入れるでしょう。

于 2013-04-28T06:55:26.040 に答える
1

これを実装するには 2 つの方法があります。

  1. UIPickerViewの動作をほぼ模倣するカスタムを作成しますUIDatePickerが、「すべての月」行を追加します。

  2. UISwitch「すべての月」を有効にするビュー階層のどこかに追加します。スイッチがオンになったら、日付ピッカーから月のコンポーネントを削除し、スイッチがオフになったら元に戻します。これは、新しいイベントを作成するときに Apple がカレンダー アプリで行うことと非常によく似ています。

于 2013-04-28T06:25:31.747 に答える
0

さらに、この目的に使用できる素晴らしい UIComponent が github にあります。
コンポーネントへのリンク: DRK MonthSelector

于 2014-03-19T07:35:12.433 に答える