Simplified/corrected highlighted/selected appearance of feed and timeline cells.
- Set the highlighted text color on labels in table cells. This will be used for both the highlight and selected states automatically. (And since it is used for both states, we avoid anachronistic state where we have black text on a dark blue background in light mode as we transition from none -> highlighted -> selected.) - Keep the selected/highlighted overrides to adjust colors for non-UIControl subelements.
This commit is contained in:
parent
932f6fdd30
commit
061872b7ff
|
@ -96,10 +96,6 @@ struct AppAssets {
|
|||
return UIImage(systemName: "safari")!
|
||||
}()
|
||||
|
||||
static var selectedTextColor: UIColor = {
|
||||
return UIColor(named: "selectedTextColor")!
|
||||
}()
|
||||
|
||||
static var settingsImage: UIImage = {
|
||||
return UIImage(named: "settingsImage")!
|
||||
}()
|
||||
|
@ -128,6 +124,10 @@ struct AppAssets {
|
|||
return UIImage(systemName: "star")!
|
||||
}()
|
||||
|
||||
static var tableViewCellHighlightedTextColor: UIColor = {
|
||||
return UIColor(named: "tableViewCellHighlightedTextColor")!
|
||||
}()
|
||||
|
||||
static var tableViewCellSelectionColor: UIColor = {
|
||||
return UIColor(named: "tableViewCellSelectionColor")!
|
||||
}()
|
||||
|
|
|
@ -105,10 +105,23 @@ class MasterFeedTableViewCell : NNWTableViewCell {
|
|||
commonInit()
|
||||
}
|
||||
|
||||
override func applyThemeProperties() {
|
||||
super.applyThemeProperties()
|
||||
titleView.highlightedTextColor = AppAssets.tableViewCellHighlightedTextColor
|
||||
}
|
||||
|
||||
override func setHighlighted(_ highlighted: Bool, animated: Bool) {
|
||||
super.setHighlighted(highlighted, animated: animated)
|
||||
|
||||
let tintColor = isHighlighted || isSelected ? AppAssets.tableViewCellHighlightedTextColor : AppAssets.netNewsWireBlueColor
|
||||
faviconImageView.tintColor = tintColor
|
||||
}
|
||||
|
||||
override func setSelected(_ selected: Bool, animated: Bool) {
|
||||
titleView.textColor = selected ? AppAssets.selectedTextColor : UIColor.label
|
||||
faviconImageView.tintColor = selected ? AppAssets.selectedTextColor : AppAssets.netNewsWireBlueColor
|
||||
super.setSelected(selected, animated: animated)
|
||||
|
||||
let tintColor = isHighlighted || isSelected ? AppAssets.tableViewCellHighlightedTextColor : AppAssets.netNewsWireBlueColor
|
||||
faviconImageView.tintColor = tintColor
|
||||
}
|
||||
|
||||
override func willTransition(to state: UITableViewCell.StateMask) {
|
||||
|
|
|
@ -38,21 +38,31 @@ class MasterTimelineTableViewCell: NNWTableViewCell {
|
|||
commonInit()
|
||||
}
|
||||
|
||||
override func applyThemeProperties() {
|
||||
super.applyThemeProperties()
|
||||
|
||||
let highlightedTextColor = AppAssets.tableViewCellHighlightedTextColor
|
||||
|
||||
titleView.highlightedTextColor = highlightedTextColor
|
||||
summaryView.highlightedTextColor = highlightedTextColor
|
||||
dateView.highlightedTextColor = highlightedTextColor
|
||||
feedNameView.highlightedTextColor = highlightedTextColor
|
||||
}
|
||||
|
||||
override var frame: CGRect {
|
||||
didSet {
|
||||
setNeedsLayout()
|
||||
}
|
||||
}
|
||||
|
||||
override func setSelected(_ selected: Bool, animated: Bool) {
|
||||
let selectedTextColor = selected ? AppAssets.selectedTextColor : UIColor.label
|
||||
titleView.textColor = selectedTextColor
|
||||
summaryView.textColor = selectedTextColor
|
||||
dateView.textColor = selectedTextColor
|
||||
feedNameView.textColor = selectedTextColor
|
||||
unreadIndicatorView.isSelected = selected
|
||||
override func setHighlighted(_ highlighted: Bool, animated: Bool) {
|
||||
super.setHighlighted(highlighted, animated: animated)
|
||||
unreadIndicatorView.isSelected = isHighlighted || isSelected
|
||||
}
|
||||
|
||||
override func setSelected(_ selected: Bool, animated: Bool) {
|
||||
super.setSelected(selected, animated: animated)
|
||||
unreadIndicatorView.isSelected = isHighlighted || isSelected
|
||||
}
|
||||
|
||||
override func sizeThatFits(_ size: CGSize) -> CGSize {
|
||||
|
|
|
@ -32,11 +32,8 @@ class MasterUnreadIndicatorView: UIView {
|
|||
}()
|
||||
|
||||
override func draw(_ dirtyRect: CGRect) {
|
||||
if isSelected {
|
||||
AppAssets.selectedTextColor.setFill()
|
||||
} else {
|
||||
AppAssets.timelineUnreadCircleColor.setFill()
|
||||
}
|
||||
let color = isSelected ? AppAssets.tableViewCellHighlightedTextColor : AppAssets.timelineUnreadCircleColor
|
||||
color.setFill()
|
||||
MasterUnreadIndicatorView.bezierPath.fill()
|
||||
}
|
||||
|
||||
|
|
|
@ -15,6 +15,19 @@
|
|||
"green" : "1.000"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"color" : {
|
||||
"platform" : "ios",
|
||||
"reference" : "labelColor"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
Loading…
Reference in New Issue