2

そのため、この問題に直面しています。標準のUIPickerは、私の(プロト)アプリでは見栄えが悪く、実際に外観を変更します。私はすでにそれをグーグルで検索し、この便利なリンクhttp://aralbalkan.com/2985を見つけました。見た目は良さそうですが、もっと簡単な方法はないのでしょうか。

ここでスタックオーバーフローでこのスレッドを見つけましたIOS日付ピッカーを「再スキン」することは可能ですか?、それは「未解決」ですが、最初の記事を指しています。

また、Apress Bookの「BeginningIphonedevelopment」(第7章だと思います)のチュートリアルも行いましたが、非常に便利でしたが、列の完全な外観ではなく、内容だけを変更していました。明確にするために、次のようなものがあると便利です。

ここに画像の説明を入力してください

誰かがObjective-cの新人のための良いチュートリアル/リンク/提案を持っていますか?アドバイスのThx

編集:それで私は以下の2つの答えに詳述されている方法を実装しました、そしてそれは魅力のように働きます。しかし、私はまだ背景色で立ち往生しています...。

4

2 に答える 2

1

UIPickerViewDelegate数字は'sを使用して作成できる必要がpickerView:viewForRow:forComponent:reusingView:ありますが、コンマは。を使用して追加できますaddSubView:

または、別の道を進んで、オープンソースの代替手段、つまりAFPickerViewを使用します

階層内のビューを操作できますが、おそらくピッカーを再作成する方が簡単です…</ p>

-(void)viewDidAppear:(BOOL)animated
{
    for (UIView *view in [self.pickerView subviews]) {
        NSLog(@"%@", view);
    }
    [(UIView *)[[self.pickerView subviews] objectAtIndex:1] setBackgroundColor:[UIColor blueColor]];
    [(UIView *)[[self.pickerView subviews] objectAtIndex:0] setHidden:YES];
    [(UIView *)[[self.pickerView subviews] lastObject] setHidden:YES];

    for (UIView *view in [(UIView *)[[self.pickerView subviews] objectAtIndex:2] subviews]) {
        NSLog(@"> %@", view);
    }

   [[[(UIView *)[[self.pickerView subviews] objectAtIndex:2] subviews] lastObject] setHidden:YES];
}
于 2012-05-24T15:39:09.117 に答える
1

UIPickerViewのデリゲートを使用します。と呼ばれるメソッドを作成します

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view

したがって、この時点で、UIView(またはサブクラス)を作成できます。この時点で、ビューの表示内容を完全に制御できます。背景色とアルファを変更できます。また、UIViewをサブクラス化すると、独自の描画ルーチンを作成できます。

于 2012-05-24T16:23:16.410 に答える