Skip to content

Latest commit

 

History

History
 
 

CollectionLayoutAttributes

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Collection Layout Attributes

Allows passing layout attributes to the cells and supplementary views.


Installation

Requirements

  • Xcode 7.0 or higher.
  • iOS SDK version 7.0 or higher.

Installation with CocoaPods

To add this component to your Xcode project using CocoaPods, add the following to your Podfile:

pod 'MaterialComponents/CollectionLayoutAttributes'

Then, run the following command:

pod install

Usage

Importing

Before using Collection Layout Attributes, you'll need to import it:

Swift

import MaterialComponents.MaterialCollectionLayoutAttributes

Objective-C

#import "MaterialCollectionLayoutAttributes.h"

The MDCCollectionViewLayoutAttributes class allows passing properties to a cell from a collection view layout. Override the -applyLayoutAttributes method of any UICollectionReusableView or UICollectionViewCell subclasses, then apply any of the properties of the attributes class.

Swift

override func apply(_ layoutAttributes: UICollectionViewLayoutAttributes) {
  super.apply(layoutAttributes)
  if let attr = layoutAttributes as? MDCCollectionViewLayoutAttributes {
    if (attr.representedElementCategory == .cell) {

      // Example to set a background image to the cell background view.
      self.backgroundView = UIImageView(image: attr.backgroundImage)
    }
  }
}

Objective-C

- (void)applyLayoutAttributes:(UICollectionViewLayoutAttributes *)layoutAttributes {
  [super applyLayoutAttributes:layoutAttributes];
  if ([layoutAttributes isKindOfClass:[MDCCollectionViewLayoutAttributes class]]) {
    MDCCollectionViewLayoutAttributes *attr = (MDCCollectionViewLayoutAttributes *)layoutAttributes;
    if (attr.representedElementCategory == UICollectionElementCategoryCell) {

      // Example to set a background image to the cell background view.
      self.backgroundView = [[UIImageView alloc] initWithImage:attr.backgroundImage];
    }
  }
}