UILableテキストのフォントスタイルを、以下のようなSmall-Caps形式で設定したいとします。Objective Cでフォントスタイルを変更する(全Caps形式のLableテキストを設定する)
、誰もが知っていればのおかげで、私に
を、このための解決策を教えてください。 :)
UILableテキストのフォントスタイルを、以下のようなSmall-Caps形式で設定したいとします。Objective Cでフォントスタイルを変更する(全Caps形式のLableテキストを設定する)
、誰もが知っていればのおかげで、私に
を、このための解決策を教えてください。 :)
もし私が間違っていないなら、これはあなたが望むものですか?
NSString *uppercaseString = [yourString uppercaseString];
このフォントサイトをアップルストアに提出する場合は、フォントのライセンスも含める必要がありますが、それを忘れないでください。 – aslisabanci
それは別のフォントではありませんが、それはスタイルですフォトショップでAll-Caps形式に変更されましたが、目的のCでこのようなフォントスタイルを変更することが可能であることを知りたいだけです:) – Raj
私が知る限り、コードではこれを行うことはできません。以下の答えのいくつかに記載されているように、いくつかの回避策を試してみることをお勧めします。 – aslisabanci
てみてください。 label.text = [str uppercaseString];
それはあなたにこのような出力が得られます:MUDIT
のiOSで利用可能なフォントは、「capitalicスタイル」を持っていません。独自のフォントを追加するか、関数CTFontDescriptorCreateCopyWithFeatureを使用してフォントを作成してください。
私は、最も簡単な方法は、混在したフォントサイズの属性付き文字列(NSAttributedString)を作成することだと思います。
実際には、少なくともiOS 6ではそれが間違っています.iOSに含まれるフォントはOS Xに付属するものと同じですが、その多くに小さなキャップなど多くのOpenType機能が含まれています。 –
@レオ、あなたは小さな帽子の使用の例を示すことができますか? – Lucien
iOSのSafariで次のページを開きます。 http://www.w3schools.com/cssref/playit.asp?filename=playcss_font-variant&preval=small-caps iOSには兄弟OSと同じ字体的な機能がありますバツ;しかし、これらの機能をパブリックAPIで使用することははるかに困難です。 –
UILabel
内の個々の文字のフォントサイズやタイプを変更することはできません。
あなたがしたいことは、2つのラベルを持つことです.1つは、最初の大きな文字を募集し、もう1つは残りの単語のためのものです。あなたが使用することができ、最初の文字と単語の残りの部分にアクセスするために
:あなたが画像に表示されて何
NSString * word = @"COMPLETED";
NSString * firstLetter = [word substringToIndex:1];
NSString * remainingWord = [word substringFromIndex:1];
おそらく言葉の絵ではなくUILabel
秒です。 UILabelは、各単語の最初の文字が大きくなって、あなたはこのような何かを行うことができます大文字の文字列としてレンダリングするようにするに
:
@implementation CapitalicTextLabel
- (void)drawRect:(CGRect)rect
{
// Drawing code
NSArray* words = [self.text componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetCharacterSpacing(context, 1);
CGContextSetFillColorWithColor(context, [self.textColor CGColor]);
CGAffineTransform myTextTransform = CGAffineTransformScale(CGAffineTransformIdentity, 1.f, -1.f);
CGContextSetTextMatrix (context, myTextTransform);
CGFloat x = 0;
float centeredY = (self.font.pointSize + (self.frame.size.height - self.font.pointSize)/2) - 2;
CGFloat firstLetterSize = self.font.pointSize * 1.4;
for (NSString* word in words)
{
NSString* letter = [[word substringToIndex:1] uppercaseString];
CGContextSelectFont(context, [self.font.fontName cStringUsingEncoding:NSASCIIStringEncoding], firstLetterSize, kCGEncodingMacRoman);
CGContextShowTextAtPoint(context, x, centeredY, [letter cStringUsingEncoding:NSASCIIStringEncoding], [letter length]);
x = CGContextGetTextPosition(context).x;
NSString* restOfWord = [[[word substringFromIndex:1] uppercaseString] stringByAppendingString:@" "];
CGContextSelectFont(context, [self.font.fontName cStringUsingEncoding:NSASCIIStringEncoding], self.font.pointSize,
kCGEncodingMacRoman);
CGContextShowTextAtPoint(context, x, centeredY, [restOfWord cStringUsingEncoding:NSASCIIStringEncoding], [restOfWord length]);
CGPoint v = CGContextGetTextPosition(context);
x = CGContextGetTextPosition(context).x;
}
}
@end
この実装は、マルチプル渡って分割処理しません。 TextAlignmentの設定を尊重することができます。これは後で追加するのに十分シンプルでなければなりません。
例:iOSの7カスタムフォントについては
は、この方法は、アンソニーMattox氏によって記述されています。システムフォントの場合、私は方法を知らない。
これは正しい答えです! –
私は、画像に表示され、「スコア」「時間を」キャプション「日付完了」などのフォントスタイルをしたいです。 – Raj
あなたのxcodeのフォントファイルを追加します – Leena
フォントはHelvetica Neue Boldですが、フォントを完全に得ることができますが、問題は同じスタイルを得ることができないということです - 問題は私が小文字としてテキストスタイルを設定することを意味します:( – Raj