UIStepperは非常に便利ですが、私はそれの外観を変更したい、私はプラスとマイナスではなく、コントロールの色を変更したいアイコンをカスタマイズする必要があります。どうすればこれを達成できますか?前もって感謝します!UIStepperの外観を変更する
答えて
これは現在できません。アイコンをカスタマイズする場合は、カスタムUIControl
オブジェクトを記述する必要があります。
UIStepper Class Referenceから、だけが変更できるパラメータはあなたがアイコンをカスタマイズすることはできません
continuous property
autorepeat property
wraps property
minimumValue property
maximumValue property
stepValue property
value property
です。
ただし、UIView
のサブクラスであるため、backgroundColor
を変更してみることができます。
'backgroundColor'の変更は、' UIStepper'がどのように実装されたかの決定により機能しません。質問者はバグファイルを提出する必要があります:https://bugreport.apple.com –
私はそれがとにかくオープンソースの代替手段を吸うことがわかりますか?途中で答えをくれてありがとう。 –
これは動作します:
[[UIButton appearanceWhenContainedIn:[UIStepper class], nil] setBackgroundImage:[UIImage imageNamed:@"normal.png"] forState:UIControlStateNormal];
[[UIButton appearanceWhenContainedIn:[UIStepper class], nil] setBackgroundImage:[UIImage imageNamed:@"highlighted.png"] forState:UIControlStateHighlighted];
[[UIButton appearanceWhenContainedIn:[UIStepper class], nil] setBackgroundImage:[UIImage imageNamed:@"disabled.png"] forState:UIControlStateDisabled];
それはしかしどのように将来の証拠わかりません。
ニースが見つかりました。左と右のコントロールに異なる画像を設定する方法はありますか? – tagyro
@AndreiStoleru私はあなたがios5をターゲットにしていると仮定し+インクリメントとデクリメント画像を意味します。 UIStepperにサブクラス化またはカテゴリを追加することなくしかし、あなたは[[UIImageView appearanceWhenContainedIn:[UIStepper class]、nil] setImage:[UIImage imageNamed:@ "divider.png"]]を使って仕切りをカスタマイズすることができます。 – Timmehmainframe
iOS 9では 'appearanceWhenContainedIn'が廃止されました。将来のユーザーがここに到着した場合には、今後の使用を推奨しません。 – hvaughan3
iOS 6.0以降では、- (UIImage *)decrementImageForState:(UIControlState)state
と- (UIImage *)incrementImageForState:(UIControlState)state
を使用して、UIStepperコントロールのラベルを変更できます。
これは、iOS 6.0のために働く:
[_stepper setDecrementImage:[UIImage imageNamed:@"decrementIcon.png"] forState:UIControlStateNormal];
正常に動作します。これは、iOS> = 6の場合に受け入れられる回答でなければなりません。 –
あなたはいつもあまりにも、UIViewsをステップと推測することができます。とにかく、これは私のコードですが、質問に直接答えませんが、まあまあです。
@implementation UIStepper (Util)
- (void) fixForIos7 {
if (!IS_IOS7)
return;
for (UIView *view in self.subviews) {
view.backgroundColor = [UIColor whiteColor];
UIButton *button = (UIButton*)view;
[button setTintColor:[UIColor blackColor]];
}
}
@end
ここは私のために働く解決法です。
プラットフォームIOSの7.1
[stepper setBackgroundImage:[UIImage new] forState:UIControlStateNormal];
[stepper setDividerImage:[UIImage new] forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal];
結果だけインクリメントされ、デクリメント画像が表示されています。
これはできません。この機能をリクエストするバグを提出してください:https://bugreport.apple.com –