Created
March 28, 2016 18:02
-
-
Save lukaspili/a8d502f12f433639be02 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// YMMFadingScrollView.m | |
// Youmiam | |
// | |
// Created by Lukas on 4/14/14. | |
// Copyright (c) 2014 Siu. All rights reserved. | |
// | |
#import "YMMFadingScrollView.h" | |
@implementation YMMFadingScrollView | |
static CGFloat const kFadePercentage = 0.1f; | |
static CGFloat const kScrollBarWidth = 7; | |
- (void)layoutSubviews | |
{ | |
[super layoutSubviews]; | |
NSObject * transparent = (NSObject *) [[UIColor colorWithWhite:0 alpha:0] CGColor]; | |
NSObject * opaque = (NSObject *) [[UIColor colorWithWhite:0 alpha:1] CGColor]; | |
CALayer * maskLayer = [CALayer layer]; | |
maskLayer.frame = self.bounds; | |
CALayer * scrollGutterLayer = [CALayer layer]; | |
scrollGutterLayer.frame = CGRectMake(self.bounds.size.width - kScrollBarWidth, 0, | |
kScrollBarWidth, self.bounds.size.height); | |
scrollGutterLayer.backgroundColor = (__bridge CGColorRef)(opaque); | |
CAGradientLayer * gradientLayer = [CAGradientLayer layer]; | |
gradientLayer.frame = CGRectMake(self.bounds.origin.x, 0, | |
self.bounds.size.width, self.bounds.size.height); | |
gradientLayer.colors = [NSArray arrayWithObjects: transparent, opaque, | |
opaque, transparent, nil]; | |
// Set percentage of scrollview that fades at top & bottom | |
gradientLayer.locations = [NSArray arrayWithObjects: | |
[NSNumber numberWithFloat:0], | |
[NSNumber numberWithFloat:kFadePercentage], | |
[NSNumber numberWithFloat:1.0 - kFadePercentage], | |
[NSNumber numberWithFloat:1], nil]; | |
// gradientLayer.colors = [NSArray arrayWithObjects: opaque, transparent, nil]; | |
// | |
// gradientLayer.locations = [NSArray arrayWithObjects:[NSNumber numberWithFloat:1.0 - kFadePercentage], [NSNumber numberWithFloat:1], nil]; | |
gradientLayer.startPoint=CGPointMake(0.5, 0); | |
gradientLayer.endPoint=CGPointMake(0.5, 1); | |
[maskLayer addSublayer:gradientLayer]; | |
[maskLayer addSublayer:scrollGutterLayer]; | |
self.layer.mask = maskLayer; | |
} | |
@end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment