如何使单元格及其元素看起来变灰?
How can I make a cell and its elements look greyed out?
我有一个 UITableView
,它是一个文章列表。当用户点击一篇文章时,会有一个 segue 到它,然后当他们返回列表时,我希望该文章被标记为“已读”。在这种情况下,标记为已读意味着该单元格应该看起来是灰色的。我正在尝试通过创建一个 UIView
并将其用作该单元格上的叠加层来做到这一点。
这是我最近的尝试:
class PublicationTableViewCell: UITableViewCell {
@IBOutlet weak var publicationTitle: UILabel!
@IBOutlet weak var authorName: UILabel!
@IBOutlet weak var authorInitials: UILabel!
@IBOutlet weak var authorImage: UIImageView!
@IBOutlet weak var bottomBorder: UIView!
var pub: PublicationModel?
func updateCellProperties(publication: PublicationModel, indexPathRow: Int) {
pub = publication if let isRead = publication.isRead {
// this is the overlay that I can’t get to work
let readOverlayView = UIView()
readOverlayView.tintColor = UIColor.grey3
readOverlayView.alpha = 0.5
self.addSubview(readOverlayView)
// I was greying out just the title like this. This will go away if I get the overlay to work
publicationTitle.textColor = isRead ? UIColor.grey3 : UIColor.grey1
}
}
// some helper methods…
}
我已经逐步检查了代码并确认对于已阅读的文章,isRead 标志是 true
并且正在执行创建 readOverlayView 的代码。
我希望项目上的所有 UI 元素都显示为灰色,这就是我不尝试更改单元格背景颜色的原因。
- 为什么我的 readOverlayView 对单元格的外观没有影响
- 有没有更好的方法可以达到我想要的效果?
谢谢
你可以这样做:
readOverlayView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
在将其添加为子视图之前,使其在所有单元格上展开。
不过,我建议在单元格内的 Storyboard
文件中制作此叠加视图,将其在此处公开为 IBOutlet
蚂蚁只需在 [=14] 中设置 isHidden
值=] 方法。
祝你好运!
我有一个 UITableView
,它是一个文章列表。当用户点击一篇文章时,会有一个 segue 到它,然后当他们返回列表时,我希望该文章被标记为“已读”。在这种情况下,标记为已读意味着该单元格应该看起来是灰色的。我正在尝试通过创建一个 UIView
并将其用作该单元格上的叠加层来做到这一点。
这是我最近的尝试:
class PublicationTableViewCell: UITableViewCell {
@IBOutlet weak var publicationTitle: UILabel!
@IBOutlet weak var authorName: UILabel!
@IBOutlet weak var authorInitials: UILabel!
@IBOutlet weak var authorImage: UIImageView!
@IBOutlet weak var bottomBorder: UIView!
var pub: PublicationModel?
func updateCellProperties(publication: PublicationModel, indexPathRow: Int) {
pub = publication if let isRead = publication.isRead {
// this is the overlay that I can’t get to work
let readOverlayView = UIView()
readOverlayView.tintColor = UIColor.grey3
readOverlayView.alpha = 0.5
self.addSubview(readOverlayView)
// I was greying out just the title like this. This will go away if I get the overlay to work
publicationTitle.textColor = isRead ? UIColor.grey3 : UIColor.grey1
}
}
// some helper methods…
}
我已经逐步检查了代码并确认对于已阅读的文章,isRead 标志是 true
并且正在执行创建 readOverlayView 的代码。
我希望项目上的所有 UI 元素都显示为灰色,这就是我不尝试更改单元格背景颜色的原因。
- 为什么我的 readOverlayView 对单元格的外观没有影响
- 有没有更好的方法可以达到我想要的效果?
谢谢
你可以这样做:
readOverlayView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
在将其添加为子视图之前,使其在所有单元格上展开。
不过,我建议在单元格内的 Storyboard
文件中制作此叠加视图,将其在此处公开为 IBOutlet
蚂蚁只需在 [=14] 中设置 isHidden
值=] 方法。
祝你好运!