diff --git a/iOS/MasterTimeline/Cell/MasterTimelineCellData.swift b/iOS/MasterTimeline/Cell/MasterTimelineCellData.swift index 8996654f8..d1d1c3782 100644 --- a/iOS/MasterTimeline/Cell/MasterTimelineCellData.swift +++ b/iOS/MasterTimeline/Cell/MasterTimelineCellData.swift @@ -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 = "" diff --git a/iOS/MasterTimeline/Cell/MasterTimelineTableViewCell.swift b/iOS/MasterTimeline/Cell/MasterTimelineTableViewCell.swift index 863ee7631..0c2d9d4a5 100644 --- a/iOS/MasterTimeline/Cell/MasterTimelineTableViewCell.swift +++ b/iOS/MasterTimeline/Cell/MasterTimelineTableViewCell.swift @@ -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 {