borderStyle= UITextBorderStyleRoundedRect
でUITextField
の背景色を制御できません。このボーダースタイルでは、backgroundColor
プロパティは、丸みを帯びた長方形の内側のエッジに沿った非常に細い線のみを制御するように見えます。残りのフィールドは白のままです。
ただし、borderStyle
がUIBorderStyle=UITextBorderStyleBezel
に設定されている場合、UITextField
の背景全体はbackgroundColor
プロパティによって制御されます。
これは機能ですか? backgroundColor
のUITextField
をborderStyle=UITextBorderStyleRoundedRect
で制御する方法はありますか?
UITextFieldの背景色を変更するには、最初に、Interface Builderで、またはプログラムで、「丸め」スタイル(「境界なし」スタイルなど)とは異なるスタイルのテキストフィールドを使用する必要があります。
その後、簡単に背景色を変更できます
textField.backgroundColor = backgroundColor;
ここで、textFieldはUITextFieldであり、backgroundColorはUIColorです。
さらなるヒントとして、角の丸い外観を復元したい場合は、最初に
#import <QuartzCore/QuartzCore.h>
そして設定
textField.layer.cornerRadius=8.0f;
textField.layer.masksToBounds=YES
この機能が機能するには
他の回答では、丸みのある四角形スタイルのUITextFieldに影がありません。多くのオプションを試した後、UIViewをUITextFieldの上に配置し、同じフレームと自動サイズ変更マスクを使用して、アルファを0.3に設定し、背景を青色に設定しました。次に、Peter Johnsonの回答のスニペットを使用して、色付きのオーバーレイビューから丸みを帯びたエッジを切り取りました。また、IBの[ユーザー操作有効]チェックボックスをオフにして、タッチイベントをその下のUITextFieldにカスケードできるようにします。今完璧に見えます。
副作用:テキストも色付けされます(黒の場合でもかまいません)。
#import <QuartzCore/QuartzCore.h>
colorizeOverlayView.layer.cornerRadius = 6.0f;
colorizeOverlayView.layer.masksToBounds = YES;
これは私たちが思っていたよりもはるかに簡単です。
ColorWithRed:green:blue:を使用してbackgroundColorを設定する場合、色は浮動小数点数で、1の分数である必要があります。次に例を示します。
[myTextField setBackgroundColor:[UIColor colorWithRed:255.0f/255.0f green:110.0f/255.0f blue:110.0f/255.0f alpha:1];
これを行うと、すべてのTextFieldスタイルが機能するように見えます。
以下も参照してください: 背景色が期待どおりに機能しない
ビュー階層のダンプから、UITextField
にはタイプUITextFieldRoundedRectBackgroundView
のサブビューが1つあり、サブビューには12のUIImageView
sがあることがわかります。
Erica Sadunによる 古い記事 は、追加のUILabel
を示しています。これは、Apple SDKの新しいバージョンでは明らかに削除されています。
UIImageView
sをいじるのに大きな変化はありません。
だから答えは:背景色を変更する方法はおそらくないでしょう。
RoundedRectテキストボックスの下に影を付けることができるので、ジェイコブの答えはここでの最良の答えでした。
彼の解決策を詳しく説明するには、次のようにする必要があります。
UIView *textFieldShadeView=[[UIView alloc] init];
[textFieldShadeView setFrame:myTextFiled.frame];
textFieldShadeView.layer.cornerRadius=8.0f;
textFieldShadeView.layer.masksToBounds=YES;
textFieldShadeView.backgroundColor=[UIColor blueColor];
textFieldShadeView.alpha=0.3;
textFieldShadeView.userInteractionEnabled=NO;
[self.view addSubview:textFieldShadeView];
[textFieldShadeView release];
ここで、myTextFiledは、背景色を変更しようとしている丸められた四角形のテキストフィールドです。上記を行うと、ジェイコブの青みがかったテキストフィールドと適切なシャドウが表示されます。
...
textField.opaque = YES;
textField.backgroundColor=[UIColor blueColor];
textField.layer.cornerRadius=8.0f;
textField.layer.masksToBounds=YES
あなたはこれを行うことができます:
textField.backgroundColor = [UIColor whiteColor];
この場合、私は白い色でそれをやっていますが、uiColor
の別の色でそれを行うことができます。
それが役に立てば幸い