skip to Main Content

Is it possible to set collection view (all items) alpha = 0.5 but header set alpha = 1.0?

2

Answers


  1. here you can set items alpha:

    override func collectionView(_ collectionView: UICollectionView,
                                     cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
            let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "HomeCell",
                                                          for: indexPath
            cell.alpha = 0.5
     }
    

    here you can set header alpha:

    override func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
            switch kind {
                
            case UICollectionView.elementKindSectionHeader:
                
                let headerView = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "Header", for: indexPath)
                
                headerView.backgroundColor = UIColor.blue
                headerView.alpha = 1.0 //by default its also 1 just showing here
                return headerView
                
            case UICollectionView.elementKindSectionFooter:
                break
            default:
                assert(false, "Unexpected element kind")
            }
        }
    
    Login or Signup to reply.
  2. If your collection have some interitem or interline spacing and collection view have a background color other than clear or systemBackgroundColor, Then you need to set alpha for background color like this :

    yourCollectionView.backgroundColor = UIColor.green.withAlphaComponent(0.5)
    

    you can also use backgroundView of collectionView depending upon the need , like this :

        let aView = UIView(frame: yourCollectionView.frame)
        aView.backgroundColor = .green
        aView.alpha = 0.1
        yourCollectionView.backgroundView = aView
    

    and then in cellforItemAt:

     func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
            let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "CellID", for: indexPath)
            cell.contentView.alpha = 0.5
            return cell
        }
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search