2016-09-21 4 views
1

Objective-CでUILabelのサブクラスであるカテゴリを作成したいので、アプリケーションですべてのUILabelのラベルの色を変更できます。何かを提案してください。カテゴリ/サブクラスを作成する方法UILabelでラベルの色やテキストのスタイルを変更する

+1

こんにちははAnkurを参照してください、スタックオーバーフローを歓迎します。 [ask]を読んで、自分でコードを書くようにしてください。 [mcve]を提供しようとしない質問は通常、トピックとして閉じられます。 – Tibrogargan

答えて

0

Appleは言う:

「基本UILabelクラスは、ラベルテキストのシンプルかつ複雑なスタイリングの両方のサポートを提供します。また、このようなラベルが影を使用していますかで描画するかどうかなどの外観の側面、上で制御することができます。必要に応じて、サブクラス化することでさらにテキストの外観をカスタマイズすることができます。

この2つのリンクを確認してください: 1. How to Subclass UI elements like UILabel, UIButton。 2. SubClassing UILabel

+0

また、この受け入れられた答えを見てください。あなたはアイデアを得るでしょう。 http://stackoverflow.com/questions/11190927/uilabel-subclass –

0

このスタイリングを達成するためのカテゴリは必要ありません。

1.基本的な考え方

外観で

[[UILabel appearance] setTextColor:[UIColor redColor]]; 

2.さらに悪いアプローチ

を使用し、アプリケーション全体のすべてのUILabelクラスインスタンスのテキストの色を変更するにはあなたがしたい場合サブクラスUILabelの場合は、その描画メソッドをオーバーライドする必要があります。しかし、これは悪いアプローチです。

3.最悪のアプローチ

あなたはカテゴリを使用することを主張する場合、あなたはカテゴリUILabel+CustomColorを作成し、

+ (UILabel *)coloredLabel { 
    UILabel *label = [UILabel new]; 
    label.textColor = [UIColor redColor]; 

    return label; 
} 

内のメソッドを実装することができ、この特定のラベルの作成は、次のようになります。

UILabel *label = [UILabel coloredLabel]; 
0

ラベルColoこのようなur。

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 50)]; 
[label setTextColor:[UIColor redColor]]; 
[label setBackgroundColor:[UIColor clearColor]]; 

あなたは異なるテキストスタイル、ユーザーNSAttributedStringの文字列を設定し、ラベルを付けるこれを設定したい場合は、次のコードスニペット

NSString *textString;//Your text 
dict = @{NSForegroundColorAttributeName:[UIColor redColor], 
        NSBackgroundColorAttributeName: [UIColor clearColor], 
        NSFontAttributeName:[UIFont systemFontOfSize:10], 
        NSUnderlineStyleAttributeName: @1 
        }; 
NSAttributedString *attributtedString = [[NSAttributedString alloc] initWithString:textString attributes:dict]; 
[label setAttributedText:attributtedString]; 
関連する問題