Make attributed titles work on iOS
This commit is contained in:
parent
cce4b56ee5
commit
070981553d
|
@ -12,6 +12,7 @@ import Articles
|
|||
struct MasterTimelineCellData {
|
||||
|
||||
let title: String
|
||||
let attributedTitle: NSAttributedString
|
||||
let summary: String
|
||||
let dateString: String
|
||||
let feedName: String
|
||||
|
@ -28,6 +29,7 @@ struct MasterTimelineCellData {
|
|||
init(article: Article, showFeedName: ShowFeedName, feedName: String?, byline: String?, iconImage: IconImage?, showIcon: Bool, featuredImage: UIImage?, numberOfLines: Int, iconSize: IconSize) {
|
||||
|
||||
self.title = ArticleStringFormatter.truncatedTitle(article)
|
||||
self.attributedTitle = ArticleStringFormatter.attributedTruncatedTitle(article)
|
||||
self.summary = ArticleStringFormatter.truncatedSummary(article)
|
||||
|
||||
self.dateString = ArticleStringFormatter.dateString(article.logicalDatePublished)
|
||||
|
@ -60,6 +62,7 @@ struct MasterTimelineCellData {
|
|||
|
||||
init() { //Empty
|
||||
self.title = ""
|
||||
self.attributedTitle = NSAttributedString()
|
||||
self.summary = ""
|
||||
self.dateString = ""
|
||||
self.feedName = ""
|
||||
|
|
|
@ -148,7 +148,7 @@ private extension MasterTimelineTableViewCell {
|
|||
func updateTitleView() {
|
||||
titleView.font = MasterTimelineDefaultCellLayout.titleFont
|
||||
titleView.textColor = labelColor
|
||||
updateTextFieldText(titleView, cellData?.title)
|
||||
updateTextFieldAttributedText(titleView, cellData?.attributedTitle)
|
||||
}
|
||||
|
||||
func updateSummaryView() {
|
||||
|
@ -170,6 +170,19 @@ private extension MasterTimelineTableViewCell {
|
|||
setNeedsLayout()
|
||||
}
|
||||
}
|
||||
|
||||
func updateTextFieldAttributedText(_ label: UILabel, _ text: NSAttributedString?) {
|
||||
var s = text ?? NSAttributedString(string: "")
|
||||
|
||||
if let fieldFont = label.font, let color = label.textColor {
|
||||
s = s.adding(font: fieldFont, color: color)
|
||||
}
|
||||
|
||||
if label.attributedText != s {
|
||||
label.attributedText = s
|
||||
setNeedsLayout()
|
||||
}
|
||||
}
|
||||
|
||||
func updateFeedNameView() {
|
||||
switch cellData.showFeedName {
|
||||
|
|
Loading…
Reference in New Issue