0

プロジェクトのオプションの 1 つを視覚的に魅力的にするために、グラデーションの背景を持つ UITextField が必要です。

initWithFrame をオーバーライドして UITextField クラスをサブクラス化しようとしていますが、うまくいきません。以前に UIControl をサブクラス化しようとしたことがないので、何かが足りないと思います。

誰か手を貸してくれませんか?前もって感謝します!

4

4 に答える 4

1

これはうまくいくはずです:

textView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"gradient.jpg"]];

ただし、コントロールを TextView に変更する必要があります。

于 2012-05-15T10:47:44.400 に答える
0

サブクラス化するのが最善のアイデアですが、オーバーライドする代わりに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 :) その日を楽しんでください!!

于 2012-05-15T11:47:36.413 に答える
0

タイプがのUITextFieldhas プロパティ。したがって、実行時に を描画するか、準備が整った画像を読み込んで UITextField の背景として設定することができます。このようにして、テキスト フィールドを好きなように見せることができます。backgroundUIImageUIImage

于 2012-05-15T10:46:18.760 に答える
0

この回答を試すことができます: iPhone UITextField 背景色

そして、CAGradientLayer でグラデーションを追加します

于 2012-05-15T10:57:28.353 に答える