[英]UICollectionView cell selection issue - only cells on the visible area when view is loaded can not be selected
[英]Dimming other cells in UICollectionView when a cell is selected
我正在嘗試為消息傳遞應用程序構建UICollectionView
,其中UICollectionViewCell
中的每個UICollectionView
對應於一條消息。 我正在使用MessageKit ,它擴展了UICollectionView
,來處理消息。 當用戶點擊消息時,我想顯示有關消息的信息(發送時間、用戶對消息的反應等)。
GroupMe 通過 (1) 垂直擴展消息以顯示信息,以及 (2)使視圖中的其余消息變暗並禁用用戶交互,從而以非常優雅的方式完成此操作。 請注意,突出顯示的cell
仍然啟用交互。 請參閱下面的前/后圖像。
在這里,我專注於實現(2),即當點擊消息時,我想使所有其他cells
變暗並禁用它們的用戶交互。 我還希望能夠為這種變化設置動畫,以便在短時間內使所有其他cells
變暗。 當用戶點擊視圖中的任何位置時,我希望突出顯示的cell
“取消突出顯示”,並為所有單元格重新啟用用戶交互,並類似地為還原設置動畫。
我對如何實現這種行為有點困惑 - 關於如何在Swift
實現這一點的任何想法? 任何可以讓我朝着正確方向開始的指針將不勝感激!
您可以為每個 Cell 的子視圖添加一個 UIView,除了選定的那個。 這個視圖可以通過改變帶有淡入淡出/出現效果的 alpha 值來制作動畫。
您可以在自定義UICollectionViewCell
override
isSelected
屬性來處理用戶交互和cell
選擇的alpha
,即
class CollectionViewCell: UICollectionViewCell {
override var isSelected: Bool {
didSet {
self.isUserInteractionEnabled = self.isSelected
self.alpha = self.isSelected ? 1.0 : 0.5
}
}
//rest of the code...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.