回答
如果我沒有弄錯你的意思,這是你想要的嗎?
NSString *uppercaseString = [yourString uppercaseString];
然後搜索如果你打算把這個提交給蘋果商店,那麼你還需要包含字體的許可證,不要忘記。 – aslisabanci 2012-01-16 09:54:34
這不是一個不同的字體。它是halvtica-bold,但它的風格在Photo-shop中被改爲All-Caps格式,我只是想知道它可以在Objective-C中改變這種字體風格:) – Raj 2012-01-16 09:58:04
就我所知,在代碼中不可能這樣做。您最好嘗試一些解決方法,如下面的一些答案中所述。 – aslisabanci 2012-01-16 10:18:56
你可以用這個
的NSString *海峽= @ 「mudit」 嘗試; label.text = [str uppercaseString];
它會給你這樣的輸出:MUDIT
字體iOS中可沒有「capitalic風格」。您應該添加自己的字體或嘗試使用函數CTFontDescriptorCreateCopyWithFeature創建字體。
我認爲最簡單的方法是使用混合字體大小來構建屬性字符串(NSAttributedString)。
實際上,這是不正確的,至少對於iOS 6來說。iOS中包含的字體與OS X附帶的是相同的變體,並且它們中的很多包括許多OpenType功能,例如小型大寫字母。 – 2013-04-19 15:50:12
@Leo,你能舉一個小帽子的例子嗎? – Lucien 2013-06-05 10:04:22
當然。在iOS上的Safari中打開以下頁面: http://www.w3schools.com/cssref/playit.asp?filename=playcss_font-variant&preval=small-caps iOS能夠使用與其兄弟OS相同的排版功能X;然而,在公共API中使用這些功能要困難得多。 – 2013-06-06 21:27:00
無法更改UILabel
中單個字母的字體大小或類型。
你想要做的是有兩個標籤,一個在乞求第一個大寫字母,一個在其餘單詞之後。
爲了訪問的第一個字母和單詞的其餘部分你可以使用:
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自定義字體,該方法由安東尼馬托克斯說明。對於系統字體我不知道一種方式。
這是正確的答案! – 2014-07-03 22:16:41
- 1. 更改標籤Docorator的字體樣式
- 2. 目標C - 環更改標籤文本
- 3. 在C#中以另一種形式更改標籤的文本?
- 4. Xamarin表單樣式中用於標籤的大寫字體Xaml
- 5. 在C#GUI中更改字體大小和字體樣式
- 6. 在c#web窗體中以編程方式更改標籤文本
- 7. 分組相同的標籤和更改文本全部 - c#/ Javascript
- 8. 如何更改uipickerview標題文本中的字體樣式?
- 9. 更改表格標籤字體大小
- 10. C#如何更改標籤的字體
- 11. 更改monodevelop c中的標籤文本#
- 12. 如何在GWT標籤部件中設置文本格式
- 13. 刪除邊距並更改ggplot中標籤的字體樣式
- 14. 如何更改C#中的MS Charts標籤字體大小?
- 15. 無法更改C#中標籤的字體大小
- 16. 如何格式化Excel中的文本框中更改字體樣式,大小,使用名稱C#,的Microsoft.Office.Interop.Excel
- 17. 更改ASP.NET標籤格式
- 18. 更改C++ CLI標籤的文本
- 19. 我想更改文本流或標籤中的字體大小
- 20. 在NativeScript中更改onTap標籤樣式
- 21. C#獲取標籤並更改文本
- 22. c#.net更改標籤文本
- 23. C#Windows窗體標籤字體大小
- 24. 在散景標籤集中更改文本字體大小
- 25. WPF:如何在目標文本框具有焦點時設置標籤樣式?
- 26. 如何設置目標中的tabbar標題的字體-c
- 27. pygtk全局標籤樣式
- 28. 更改amCharts的標籤樣式
- 29. 如何將靜態標籤中的文本設置爲粗體樣式?
- 30. C#表單 - 更改標籤字體大小
我想要的字體樣式像標題「完成日期」,「拍攝時間」和「分數」,這是在圖像顯示。 – Raj 2012-01-16 09:47:50
在您的xcode中添加字體文件 – Leena 2012-01-16 09:57:35
字體是Helvetica Neue Bold,我可以完美地字體,但問題是,我不能得到相同的風格 - 意味着問題是我不能設置文本樣式爲小型帽子:( – Raj 2012-01-16 10:16:24