2012-04-02 25 views
0

UIStepperオブジェクトの背景色プロパティを設定すると示されているように、私は結果を得る:UIStepperインスタンスの背景色を設定する方法は?

enter image description here

だけのコーナーが着色ではなく、期待、大きな背景領域を取得します。簡単な解決法があるのですか、それともステッパーのサブビューを繰り返し実行するのですか?

答えて

3

UIStepperは、3つのサブビュー:UIImageViewと2 UIButtonsを含んでいます。プラス記号とマイナス記号は、2つのボタンのimageプロパティで設定します。ボタンのイメージを変更する必要があります。

UIStepper *stepper = [[UIStepper alloc] initWithFrame:CGRectMake(100, 100, 100, 50)]; 

    for (UIView *view in stepper.subviews) { 

     if([view isKindOfClass:[UIButton class]]) { 

      UIButton *button = (UIButton *)view; 
      [button setBackgroundImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal]; 
      [button setBackgroundImage:[UIImage imageNamed:@"image1.png"] forState:UIControlStateHighlighted]; 
     } 
    } 

    [baseView addSubview:stepper]; 
+0

うん、それは動作します。 UIControlStateDisabledのイメージを設定すると便利です。 – alex

+0

ところで、UIStepperにはUIImageViewとUIButtonsの3つのサブビューが含まれています。プラス記号とマイナス記号は、2つのボタンのimageプロパティで設定します。 – alex

+0

私はあなたのコメントで私の答えを更新しました:) – Aravindhan

3

アップルがなぜ画像なしでカスタマイズするのが難しいのか分かりません。私の場合は解決何 がUIStepperオブジェクトからプロパティcornerRadiusを設定しました:

yourStepper.layer.cornerRadius = 5.f; 
+0

誰かが私のようで、本当に標準+/-画像に触れたくないのなら、この答えは簡単で、ちょうどよい解決策です!誰がなぜそれがうまくいくか気にする;-)少なくともiOS 9。 – marco