UILabel
İPhone / iPad'de kalın ve italik olarak nasıl ayarlayabilirim ? Forumu aradım ama hiçbir şey bana yardımcı olmadı. Biri bana yardım edebilir mi?
UILabel
İPhone / iPad'de kalın ve italik olarak nasıl ayarlayabilirim ? Forumu aradım ama hiçbir şey bana yardımcı olmadı. Biri bana yardım edebilir mi?
Yanıtlar:
sectionLabel.font = [UIFont fontWithName:@"TrebuchetMS-Bold" size:18];
Eğer attribute.The link 'fontWithName' yerine ayarlayabileceğini yazı adlarının bir listesi vardır burada
Yazı tipi adlarıyla oynamaya çalışmayın. Yazı tipi tanımlayıcısını kullanarak isme ihtiyacınız yoktur:
UILabel * label = [[UILabel alloc] init]; // use your label object instead of this
UIFontDescriptor * fontD = [label.font.fontDescriptor
fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitBold
| UIFontDescriptorTraitItalic];
label.font = [UIFont fontWithDescriptor:fontD size:0];
size:0
'boyutu olduğu gibi tut' anlamına gelir
Swift ile aşağıdaki uzantıyı deneyin:
extension UIFont {
func withTraits(traits:UIFontDescriptorSymbolicTraits...) -> UIFont {
let descriptor = self.fontDescriptor()
.fontDescriptorWithSymbolicTraits(UIFontDescriptorSymbolicTraits(traits))
return UIFont(descriptor: descriptor, size: 0)
}
func boldItalic() -> UIFont {
return withTraits(.TraitBold, .TraitItalic)
}
}
O zaman bu şekilde kullanabilirsiniz:
myLabel.font = myLabel.font.boldItalic()
hatta Yoğunlaştırılmış gibi ek özellikler de ekleyebilirsiniz:
myLabel.font = myLabel.font.withTraits(.TraitCondensed, .TraitBold, .TraitItalic)
extension UIFont {
var bold: UIFont {
return with(traits: .traitBold)
} // bold
var italic: UIFont {
return with(traits: .traitItalic)
} // italic
var boldItalic: UIFont {
return with(traits: [.traitBold, .traitItalic])
} // boldItalic
func with(traits: UIFontDescriptorSymbolicTraits) -> UIFont {
guard let descriptor = self.fontDescriptor.withSymbolicTraits(traits) else {
return self
} // guard
return UIFont(descriptor: descriptor, size: 0)
} // with(traits:)
} // extension
Aşağıdaki gibi kullanın:
myLabel.font = myLabel.font.bold
veya
myLabel.font = myLabel.font.italic
veya
myLabel.font = myLabel.font.with(traits: [ .traitBold, .traitCondensed ])
extension UIFont {
var bold: UIFont {
return with(.traitBold)
}
var italic: UIFont {
return with(.traitItalic)
}
var boldItalic: UIFont {
return with([.traitBold, .traitItalic])
}
func with(_ traits: UIFontDescriptor.SymbolicTraits...) -> UIFont {
guard let descriptor = self.fontDescriptor.withSymbolicTraits(UIFontDescriptor.SymbolicTraits(traits).union(self.fontDescriptor.symbolicTraits)) else {
return self
}
return UIFont(descriptor: descriptor, size: 0)
}
func without(_ traits: UIFontDescriptor.SymbolicTraits...) -> UIFont {
guard let descriptor = self.fontDescriptor.withSymbolicTraits(self.fontDescriptor.symbolicTraits.subtracting(UIFontDescriptor.SymbolicTraits(traits))) else {
return self
}
return UIFont(descriptor: descriptor, size: 0)
}
}
return withTraits(.TraitBold, .TraitCondensed)
muhtemelen return withTraits(.TraitBold, .TraitItalic)
işlev adıyla eşleşmelidir.
@Edinator buna bir göz atın ..
myLabel.font = [UIFont boldSystemFontOfSize:16.0f]
myLabel.font = [UIFont italicSystemFontOfSize:16.0f];
istediğiniz zaman yukarıdakilerden herhangi birini kullanın
İçeri "T" harfi tıklayarak, etiket için herhangi yazı stili, ailesini, boyutunu ayarlayabilir Yazı alanında.
Bir etiket ve düğmeye hem Kalın hem de İtalik uygulanması gereken aynı sorun var. Bu efekti elde etmek için aşağıdaki kodu kullanabilirsiniz:
myLabel.font = [UIFont fontWithName:@"Arial-BoldItalic" size:30.0];
İOS 7 sistem varsayılan yazı tipiyle, sistem varsayılan yazı tipini korumak istiyorsanız helvetica neue bold'u kullanacaksınız.
[titleText setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:16.0]];
Veya sadece şunu arayabilirsiniz:
[titleText setFont:[UIFont boldSystemFontOfSize:16.0]];
Hızlı 3
kalın:
let bondFont = UIFont.boldSystemFont(ofSize:UIFont.labelFontSize)
İtalik:
let italicFont = UIFont.italicSystemFont(ofSize:UIFont.labelFontSize)
btn.titleLabel.font=[UIFont fontWithName:@"Helvetica neue" size:10];
btn.titleLabel.font = [UIFont boldSystemFontOfSize:btnPrev.titleLabel.font.pointSize+3];
bunu kullanarak kalın etiket / düğme yazı tipi de yapabilirsiniz
Bir özellik (ler) ekleyebileceğiniz veya kaldırabileceğiniz maksymilian wojakowski'nin yanıtında bir değişiklik yaptım
extension UIFont {
func withTraits(_ traits:UIFontDescriptorSymbolicTraits...) -> UIFont {
let descriptor = self.fontDescriptor
.withSymbolicTraits(UIFontDescriptorSymbolicTraits(traits).union(self.fontDescriptor.symbolicTraits))
return UIFont(descriptor: descriptor!, size: 0)
}
func withoutTraits(_ traits:UIFontDescriptorSymbolicTraits...) -> UIFont {
let descriptor = self.fontDescriptor
.withSymbolicTraits( self.fontDescriptor.symbolicTraits.subtracting(UIFontDescriptorSymbolicTraits(traits)))
return UIFont(descriptor: descriptor!, size: 0)
}
func bold() -> UIFont {
return withTraits( .traitBold)
}
func italic() -> UIFont {
return withTraits(.traitItalic)
}
func noItalic() -> UIFont {
return withoutTraits(.traitItalic)
}
func noBold() -> UIFont {
return withoutTraits(.traitBold)
}
}
exemple
label.font = label.font.italic().bold()
hücreyi yeniden kullanırken faydalıdır ve önceki hücreye bir etikete koyduğunuz italik işaretini kaldırmak istediğinizde
Son zamanlarda UIFont API'sinin kısıtlamaları ve nasıl çözüleceği hakkında bir blog yazısı yazdım. Burada görebilirsiniz
Ben orada kod ile, istediğiniz UIFont kadar kolay alabilirsiniz:
UIFont *myFont = [FontResolver fontWithDescription:@"font-family: Helvetica; font-weight: bold; font-style: italic;"];
Ve daha sonra UILabel'inize (veya her neyse) ayarlayın:
myLabel.font = myFont;
Bu cevaplarda daha önce bahsedildiği gibi, sadece doğru yazı tipi adına ihtiyacınız var . Hangi adın kullanılacağını bilmek için iOSFonts.com'un en yararlı kaynak olduğunu düşünüyorum .
Örnek Kalın metin:
UILabel *titleBold = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 200, 30)];
UIFont* myBoldFont = [UIFont boldSystemFontOfSize:[UIFont systemFontSize]];
[titleBold setFont:myBoldFont];
İtalik metin örneği:
UILabel *subTitleItalic = [[UILabel alloc] initWithFrame:CGRectMake(10, 35, 200, 30)];
UIFont* myItalicFont = [UIFont italicSystemFontOfSize:[UIFont systemFontSize]];
[subTitleItalic setFont:myItalicFont];
@Tolbard tarafından verilen cevap şaşırtıcı ve iyi çalışıyor olsa da!
Ben sadece bir kod satırında elde edilebilir bir şey için bir uzantı oluşturmak hissediyorum, bir aşırı öldürmek olacaktır.
Swift 4.0 kullanarak aşağıdaki örnekte gösterildiği gibi font özelliğini ayarlayarak , aynı metin için kalın ve italik stil elde edebilirsiniz : label
UIFontDescriptor
label.font = UIFont(descriptor: UIFontDescriptor().withSymbolicTraits([.traitBold, .traitItalic])!, size: 12)
Diğer seçenekler:
traitLooseLeading
traitTightLeading
traitUIOptimized
traitVertical
traitMonoSpace
traitCondensed
traitExpanded
Bu sembolik özelliklerin ne anlama geldiği hakkında daha fazla bilgi için? burayı ziyaret et
Hızlı 3 için Maksymilian Wojakowski'nin harika cevabını güncelleme
extension UIFont {
func withTraits(traits:UIFontDescriptorSymbolicTraits...) -> UIFont? {
guard let descriptorL = self.fontDescriptor.withSymbolicTraits(UIFontDescriptorSymbolicTraits(traits)) else{
return nil
}
return UIFont(descriptor: descriptorL, size: 0)
}
func boldItalic() -> UIFont? {
return withTraits(traits: .traitBold, .traitItalic)
}
}
Birçok kez kalın metin başka bir düzeyde bir bilgi mimarisi biçiminde kabul edilir ve bu nedenle bir satırda kalın ve düzenli olmaz, böylece bunu bir tane normal ve kalın italik olarak iki etiket / textViews'e bölebilirsiniz. Ve yazı tipi stillerini seçmek için düzenleyiciyi kullanın.