Bagaimana cara mengatur huruf tebal dan miring pada UILabel
iPhone / iPad? Saya mencari di forum tetapi tidak ada yang membantu saya. Adakah yang bisa membantu saya?
Bagaimana cara mengatur huruf tebal dan miring pada UILabel
iPhone / iPad? Saya mencari di forum tetapi tidak ada yang membantu saya. Adakah yang bisa membantu saya?
Jawaban:
sectionLabel.font = [UIFont fontWithName:@"TrebuchetMS-Bold" size:18];
Ada daftar nama font yang dapat Anda atur sebagai ganti atribut 'fontWithName'. Tautan ada di sini
Jangan mencoba bermain dengan nama font. Menggunakan deskriptor font Anda tidak perlu nama:
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
berarti 'pertahankan ukuran apa adanya'
Dengan Swift coba ekstensi berikut:
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)
}
}
Maka Anda dapat menggunakannya dengan cara ini:
myLabel.font = myLabel.font.boldItalic()
atau bahkan menambahkan sifat-sifat tambahan seperti Terkondensasi:
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
Gunakan sebagai berikut:
myLabel.font = myLabel.font.bold
atau
myLabel.font = myLabel.font.italic
atau
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)
mungkin harus return withTraits(.TraitBold, .TraitItalic)
cocok dengan nama fungsi.
@ Editor melihat ini ..
myLabel.font = [UIFont boldSystemFontOfSize:16.0f]
myLabel.font = [UIFont italicSystemFontOfSize:16.0f];
gunakan salah satu di atas pada waktu yang Anda inginkan
Anda dapat mengatur gaya font, keluarga, ukuran untuk label apa pun, dengan mengklik huruf "T" di bidang Font .
Saya memiliki masalah yang sama yang perlu menerapkan Bold dan Italic pada label dan tombol. Anda cukup menggunakan kode berikut untuk mencapai efek ini:
myLabel.font = [UIFont fontWithName:@"Arial-BoldItalic" size:30.0];
Dengan font default sistem iOS 7, Anda akan menggunakan helvetica neue bold jika Anda ingin mempertahankan font default sistem.
[titleText setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:16.0]];
Atau Anda bisa menyebutnya:
[titleText setFont:[UIFont boldSystemFontOfSize:16.0]];
Cepat 3
Mencolok:
let bondFont = UIFont.boldSystemFont(ofSize:UIFont.labelFontSize)
Miring:
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];
Anda dapat melakukan huruf tebal / font tombol juga menggunakan ini
Saya membuat variasi respons dari maksymilian wojakowski di mana Anda dapat menambah atau menghapus suatu sifat
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)
}
}
contoh
label.font = label.font.italic().bold()
itu berguna saat menggunakan kembali sel dan Anda ingin menghapus huruf miring yang Anda pasang pada label di sel sebelumnya
Baru-baru ini saya menulis posting blog tentang pembatasan API UIFont dan bagaimana menyelesaikannya. Anda bisa melihatnya di sini
Dengan kode yang saya berikan di sana, Anda bisa mendapatkan UIFont yang Anda inginkan semudah:
UIFont *myFont = [FontResolver fontWithDescription:@"font-family: Helvetica; font-weight: bold; font-style: italic;"];
Dan kemudian atur ke UILabel Anda (atau apa pun) dengan:
myLabel.font = myFont;
Seperti yang telah disebutkan dalam jawaban ini, Anda hanya perlu nama font yang tepat . Saya menemukan bahwa iOSFonts.com adalah sumber yang paling membantu untuk mengetahui dengan tepat nama yang akan digunakan.
Contoh teks tebal:
UILabel *titleBold = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 200, 30)];
UIFont* myBoldFont = [UIFont boldSystemFontOfSize:[UIFont systemFontSize]];
[titleBold setFont:myBoldFont];
Contoh teks Miring:
UILabel *subTitleItalic = [[UILabel alloc] initWithFrame:CGRectMake(10, 35, 200, 30)];
UIFont* myItalicFont = [UIFont italicSystemFontOfSize:[UIFont systemFontSize]];
[subTitleItalic setFont:myItalicFont];
Meskipun jawaban yang diberikan oleh @tolbard luar biasa dan bekerja dengan baik!
Saya merasa membuat ekstensi untuk sesuatu yang dapat dicapai hanya dalam satu baris kode, akan lebih dari membunuh.
Anda bisa mendapatkan tebal serta miring styling untuk teks yang sama di Anda label
dengan menyiapkan properti font menggunakan UIFontDescriptor
seperti yang ditunjukkan di bawah ini pada contoh di bawah menggunakan Swift 4.0 :
label.font = UIFont(descriptor: UIFontDescriptor().withSymbolicTraits([.traitBold, .traitItalic])!, size: 12)
Pilihan lain termasuk:
traitLooseLeading
traitTightLeading
traitUIOptimized
traitVertical
traitMonoSpace
traitCondensed
traitExpanded
Untuk informasi lebih lanjut tentang apa arti sifat-sifat simbolis itu? kunjungi di sini
Memperbarui jawaban mengagumkan Maksymilian Wojakowski untuk cepat 3
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)
}
}
Banyak kali teks tebal dianggap dalam cara arsitektur informasi di tingkat lain dan dengan demikian tidak tebal dan teratur dalam satu baris, sehingga Anda dapat membaginya menjadi dua label / teksBerita, satu huruf miring biasa dan tebal. Dan gunakan editor untuk memilih gaya font.