プロジェクトのオプションの 1 つを視覚的に魅力的にするために、グラデーションの背景を持つ UITextField が必要です。
initWithFrame をオーバーライドして UITextField クラスをサブクラス化しようとしていますが、うまくいきません。以前に UIControl をサブクラス化しようとしたことがないので、何かが足りないと思います。
誰か手を貸してくれませんか?前もって感謝します!
プロジェクトのオプションの 1 つを視覚的に魅力的にするために、グラデーションの背景を持つ UITextField が必要です。
initWithFrame をオーバーライドして UITextField クラスをサブクラス化しようとしていますが、うまくいきません。以前に UIControl をサブクラス化しようとしたことがないので、何かが足りないと思います。
誰か手を貸してくれませんか?前もって感謝します!
これはうまくいくはずです:
textView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"gradient.jpg"]];
ただし、コントロールを TextView に変更する必要があります。
サブクラス化するのが最善のアイデアですが、オーバーライドする代わりにinitWithFrame
、サブクラス化された.mファイルで以下のコードを使用するだけです
- (CGRect)textRectForBounds:(CGRect)bounds
{
return CGRectInset(bounds, 5, 0);
}
- (CGRect)editingRectForBounds:(CGRect)bounds
{
return CGRectInset(bounds, 5, 0);
}
- (void)drawRect:(CGRect)rect
{
UIImage *textFieldBackground = [[UIImage imageNamed:@"text_field_teal.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(15.0, 5.0, 15.0, 5.0)];
[textFieldBackground drawInRect:[self bounds]];
}
これは私にとってはうまくいくので、あなたにもうまくいくと思います Happy Coding :) その日を楽しんでください!!
タイプがのUITextField
has プロパティ。したがって、実行時に を描画するか、準備が整った画像を読み込んで UITextField の背景として設定することができます。このようにして、テキスト フィールドを好きなように見せることができます。background
UIImage
UIImage
この回答を試すことができます: iPhone UITextField 背景色
そして、CAGradientLayer でグラデーションを追加します