我正在尝试使我的文本对我的应用程序中的用户更具可读性。我正在从“ https://api.myjson.com/bins/ss5jb的 JSON 中读取我的文本 ”的 JSON 中读取我的文本。有没有办法在我的 collectionView 枚举字符串中为 verseNumber 上标并将其颜色更改为浅灰色?
枚举字符串是配对 verseNumber 和 verse 的最佳方式吗?
import UIKit
class PageCell: UICollectionViewCell {
let textLabel: UITextView = {
let label = UITextView()
//Custom Font//
guard let customFont = UIFont(name: "CormorantGaramond-Medium", size: 20) else {
fatalError("""
Failed to load the "RCormorantGaramond-Medium" font.
Make sure the font file is included in the project and the font name is spelled correctly.
"""
)
}
//End Custom Font//
label.font = customFont
label.text = ""
label.translatesAutoresizingMaskIntoConstraints = false
label.isEditable = false
label.isUserInteractionEnabled = false
return label
}()
override init(frame: CGRect) {
super.init(frame: frame)
addSubview(textLabel)
//textLabel Constraints
textLabel.topAnchor.constraint(equalTo: self.topAnchor, constant: 40).isActive = true
textLabel.bottomAnchor.constraint(equalTo: self.bottomAnchor).isActive = true
textLabel.rightAnchor.constraint(equalTo: self.rightAnchor, constant: -15).isActive = true
textLabel.leftAnchor.constraint(equalTo: self.leftAnchor, constant: 30).isActive = true
}
}
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let pageCell = collectionView.dequeueReusableCell(withReuseIdentifier: "cellId2", for: indexPath) as! PageCell
let page = book?.pages[indexPath.item]
if let page = page {
let enumeratedPage = page.text.enumerated()
pageCell.textLabel.text = enumeratedPage.reduce("") { (result: String, textPair) -> String in
let result = "\(result)\n"
let verseNumber = "\(textPair.offset + 1) "
let verse = "\(textPair.element)"
return result + verseNumber + verse
}
}
return pageCell
}