[英]The text in the textview inside the table view cell is not formatted
我試圖建立一個表視圖,其中每個單元格包含帶有格式化文本的UITextView。 我把所有東西都放在一起,表格視圖被文本填充。 問題是,當我在模擬器中對其進行測試時,文本未格式化。 僅在滾動后刷新時才會格式化。
在這里,我將粘貼在視圖控制器下面,該控制器需要tableview和文本(來自SQLite數據庫),以及用於在UITextView中插入文本並設置其格式的類。 我試圖強制容器的布局,但是它不起作用。
視圖控制器
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var myTable: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
self.myTable.estimatedRowHeight = 44.0
self.myTable.rowHeight = UITableViewAutomaticDimension
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 200
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("verseCell") as! VerseTextView
let row : Int = indexPath.row
var getVerse = databaseDB()
var verse = databaseVars()
(verse.book, verse.chapter, verse.verseText) = getVerse.getVerseBy(row, database: databasePath as String)
if verse.verseNumber == 1 {
chapterToBePassed = String(verse.chapter)
}
else {
chapterToBePassed = ""
}
cell.configure(verseChapter: chapterToBePassed, verseText: "\(verse.verseText)")
return cell
}
}
VerseTextView類
class VerseTextView: UITableViewCell {
@IBOutlet weak var verse: UITextView!
func configure(#verseChapter: String?, verseText: String?) {
// Formats
var style = NSMutableParagraphStyle()
style.lineSpacing = 15
let font = UIFont(name: "Georgia", size: 18.0) ?? UIFont.systemFontOfSize(18.0)
let textFont = [NSFontAttributeName:font, NSParagraphStyleAttributeName : style]
let fontChapter = UIFont(name: "Georgia-Bold", size: 22.0) ?? UIFont.systemFontOfSize(22.0)
let chapterFont = [NSFontAttributeName:fontChapter]
let myText = NSMutableAttributedString()
var versettoId : String = ""
if verseChapter != ""{
let myTextChapter = "\n"+verseChapter!+" "
let capitolo = NSAttributedString(string: myTextChapter, attributes:chapterFont)
myText.appendAttributedString(capitolo)
}
let testoVerso = verseText!+" "
let verso = NSAttributedString(string: testoVerso, attributes:textFont)
myText.appendAttributedString(verso)
verse.attributedText = myText
// verse.layoutManager.ensureLayoutForTextContainer(verse.textContainer)
// verse.layoutIfNeeded()
}
}
謝謝,S
嘗試這個 ,
在cellForRowAtIndexpath
let cell = tableView.dequeueReusableCellWithIdentifier("verseCell") as? VerseTextView
if cell == nil {
VerseTextView(style: .Default, reuseIdentifier: "verseCell")
}
並實現VerseTextView(style: Style, reuseIdentifier: ReuseIdentifire)
在您的自定義單元格類中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.