- (void)applyLayoutAttributes:(UICollectionViewLayoutAttributes *)layoutAttributes
{
[super applyLayoutAttributes:layoutAttributes];
CGFloat featuredHeight = 280.f;
CGFloat standardHeight = 100.f;
CGFloat delta = 1 - ((featuredHeight - CGRectGetHeight(self.frame)) / (featuredHeight - standardHeight));
CGFloat minAlpha = 0.3f;
CGFloat maxAlpha = 0.75f;
CGFloat alpha = maxAlpha - (delta * (maxAlpha - minAlpha));
self.overlayView.alpha = alpha;
CGFloat scale = MAX(delta, 0.5f);
self.titleLabel.transform = CGAffineTransformMakeScale(scale, scale);
self.descriptionLabel.alpha = delta;
{
[super applyLayoutAttributes:layoutAttributes];
CGFloat featuredHeight = 280.f;
CGFloat standardHeight = 100.f;
CGFloat delta = 1 - ((featuredHeight - CGRectGetHeight(self.frame)) / (featuredHeight - standardHeight));
CGFloat minAlpha = 0.3f;
CGFloat maxAlpha = 0.75f;
CGFloat alpha = maxAlpha - (delta * (maxAlpha - minAlpha));
self.overlayView.alpha = alpha;
CGFloat scale = MAX(delta, 0.5f);
self.titleLabel.transform = CGAffineTransformMakeScale(scale, scale);
self.descriptionLabel.alpha = delta;
}
这是SFFocusViewLayout里面的一段代码。 这会动态的改变当前屏幕首行的collectionview的frame,而达到动画效果