mirror of
https://github.com/material-components/material-components-ios.git
synced 2026-02-20 08:27:32 +08:00
Collection Layout Attributes
Notice: This component will be deprecated over the next few months in favor of the Cards and List components. See our public tracker for more details on timing and the deprecation plan.
Allows passing layout attributes to the cells and supplementary views.
Design & API Documentation
Installation
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];
}
}
}