Saya memiliki tali seperti ini
var str = "@text1 this is good @text1"
Sekarang ganti text1
dengan string lain, misalnya t 1
. Saya dapat mengganti teks, tetapi saya tidak dapat menebalkannya. Saya ingin menebalkan string baru t 1
, sehingga hasil akhirnya menjadi:
@t 1 ini bagus @t 1
Bagaimana saya bisa melakukannya?
Semua contoh yang saya lihat ada di Objective-C, tapi saya ingin melakukannya di Swift.
Terima kasih sebelumnya.
ios
swift
ios8
nsmutableattributedstring
pengguna2413621
sumber
sumber
Jawaban:
Pemakaian:
Hasil:
Berikut adalah cara yang rapi untuk membuat kombinasi teks tebal dan normal dalam satu label ditambah beberapa metode bonus lainnya.
Ekstensi: Swift 5. *
sumber
func bold(_ text:String, _ size:CGFloat)
. Saya menambahkan ukuran pada tebal sehingga saya dapat mengontrolnya dari luar. Juga, saya melewatkanAvenirNext-Medium
font dalam fungsi ini jadi butuh beberapa menit untuk memahami mengapa saya tidak bisa melihat font saya. Perhatian.Saat Anda ingin menetapkannya ke label:
sumber
edit / perbarui: Xcode 8.3.2 • Swift 3.1
Jika Anda mengetahui HTML dan CSS, Anda dapat menggunakannya untuk mengontrol gaya font, warna, dan ukuran string yang dikaitkan dengan mudah sebagai berikut:
sumber
<link href=\"https://fonts.googleapis.com/css?family=Frank+Ruhl+Libre\" rel=\"stylesheet\"> <span style=\"font-family: 'Frank Ruhl Libre', sans-serif;\">שלום</span>
Jika Anda bekerja dengan string yang dilokalkan, Anda mungkin tidak dapat mengandalkan string tebal yang selalu berada di akhir kalimat. Jika ini masalahnya, maka berikut ini berfungsi dengan baik:
mis. Kueri "bla" tidak cocok dengan item mana pun
sumber
Saya memperpanjang jawaban hebat David West sehingga Anda dapat memasukkan string dan memberi tahu semua substring yang ingin Anda berani:
Dan kemudian menyebutnya seperti ini:
Ini akan memperkuat semua substring yang ingin Anda cetak tebal dalam string yang Anda berikan
sumber
Ini adalah cara terbaik yang pernah saya lakukan. Tambahkan fungsi yang dapat Anda panggil dari mana saja dan tambahkan ke file tanpa kelas seperti Constants.swift dan kemudian Anda dapat memperkuat kata-kata dalam string apa pun, pada banyak kesempatan hanya dengan memanggil SATU BARIS kode:
Untuk masuk ke file constants.swift:
Kemudian Anda dapat memanggil satu baris kode ini untuk UILabel apa pun:
sumber
Membangun jawaban luar biasa Jeremy Bader dan David West, perpanjangan Swift 3:
Pemakaian:
sumber
pemakaian....
dua sen ...
sumber
Menerima respons Prajeet Shrestha yang valid di utas ini, saya ingin memperluas solusinya menggunakan Label jika diketahui dan ciri-ciri font.
Cepat 4
sumber
Swift 4 dan lebih tinggi
Untuk Swift 4 dan lebih tinggi, itu adalah cara yang baik:
Di Label, Teksnya terlihat seperti: "Hai John "
sumber
Cara super mudah untuk melakukan ini.
Untuk detail lebih lanjut klik di sini: https://github.com/iOSTechHub/AttributedString
sumber
apply
metode dengan font yang Anda inginkanIni bisa bermanfaat
sumber
Swift 3.0.0
Ubah html menjadi string dan ubah font sesuai kebutuhan Anda.
sumber
Data("I'm a normal text and <b>this is my bold part . </b>And I'm again in the normal text".utf8)
dan menyetel pengkodean karakter dalam opsi[NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: String.Encoding.utf8.rawValue]
Cukup gunakan kode seperti ini:
sumber
dua kapal dengan cepat 4:
sumber
Penggunaan Swift 5.1,
NSAttributedString.Key
bukanNSAttributedStringKey
sumber
Untuk -> Cari Televisi berdasarkan ukuran
1 cara menggunakan NString dan Range nya
lain tanpa menggunakan NString dan Range-nya
swift5
sumber
Memperbaiki jawaban Prajeet Shrestha: -
Anda dapat membuat ekstensi umum untuk NSMutableAttributedString yang melibatkan lebih sedikit kode. Dalam hal ini saya telah memilih untuk menggunakan font sistem tetapi Anda dapat menyesuaikannya sehingga Anda dapat memasukkan nama font sebagai parameter.
sumber
Anda dapat melakukan ini menggunakan metode kustom sederhana yang tertulis di bawah ini. Anda telah memberikan seluruh string pada parameter pertama dan teks untuk dicetak tebal pada parameter kedua. Semoga ini bisa membantu.
penggunaan: initalString = Saya Laki-Laki
label.attributedText = getAttributedBoldString (str: initalString, boldTxt: "Boy")
string resultan = I am a Boy
sumber