Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 36 additions & 12 deletions NYSegmentedControl/NYSegmentIndicator.m
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@

#import "NYSegmentIndicator.h"


@interface NYSegmentIndicator ()
@property (nonatomic, strong, readwrite) CALayer * gradientLayer ;
@end


@implementation NYSegmentIndicator

+ (Class)layerClass {
Expand All @@ -30,15 +36,7 @@ - (id)initWithFrame:(CGRect)frame {
return self;
}

- (void)drawRect:(CGRect)rect {
if (self.drawsGradientBackground) {
CAGradientLayer *gradientLayer = (CAGradientLayer *)self.layer;
gradientLayer.colors = @[(__bridge id)[self.gradientTopColor CGColor],
(__bridge id)[self.gradientBottomColor CGColor]];
} else {
self.layer.backgroundColor = [self.backgroundColor CGColor];
}
}


#pragma mark - Getters and Setters

Expand Down Expand Up @@ -67,19 +65,45 @@ - (CGFloat)cornerRadius {
return self.layer.cornerRadius;
}


- (void)setDrawsGradientBackground:(BOOL)drawsGradientBackground {
_drawsGradientBackground = drawsGradientBackground;
[self setNeedsDisplay];

if (drawsGradientBackground)
{
CAGradientLayer * gradientLayer = [[CAGradientLayer alloc] init] ;
gradientLayer = [[CAGradientLayer alloc] init] ;
gradientLayer.frame = self.layer.frame ;

gradientLayer.colors = @[(__bridge id)[self.gradientTopColor CGColor],
(__bridge id)[self.gradientBottomColor CGColor]];

[self.layer addSublayer:gradientLayer] ;
[self.gradientLayer removeFromSuperlayer] ;
self.gradientLayer = gradientLayer ;
}
else
{
[self.gradientLayer removeFromSuperlayer] ;
self.gradientLayer = nil ;
}
}


- (void)setGradientTopColor:(UIColor *)gradientTopColor {
_gradientTopColor = gradientTopColor;
[self setNeedsDisplay];

// recreate the gradient layer
[self setDrawsGradientBackground:self.drawsGradientBackground] ;
}

- (void)setGradientBottomColor:(UIColor *)gradientBottomColor {
_gradientBottomColor = gradientBottomColor;
[self setNeedsDisplay];

// recreate the gradient layer
[self setDrawsGradientBackground:self.drawsGradientBackground] ;
}



@end
1 change: 1 addition & 0 deletions NYSegmentedControl/NYSegmentLabel.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
// https://github.com/nealyoung/NYSegmentedControl
//

#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>

@interface NYSegmentLabel : UILabel
Expand Down
2 changes: 1 addition & 1 deletion NYSegmentedControl/NYSegmentLabel.m
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ - (void)drawRect:(CGRect)rect {

// Create a mask from the text
mask = CGBitmapContextCreateImage(context);

CGContextSaveGState(context);
CGContextTranslateCTM(context, 0, self.frame.size.height);
CGContextScaleCTM(context, 1.0, (CGFloat) -1.0);
Expand Down
19 changes: 19 additions & 0 deletions NYSegmentedControlDemo/NYSegmentedControl+CBDSettings.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
//
// NYSegmentedControl+CBDSettings.h
// SmartMathsMP
//
// Created by Colas on 11/08/2015.
// Copyright (c) 2015 cassiopeia. All rights reserved.
//

#import "NYSegmentedControl.h"

@interface NYSegmentedControl (CBDSettings)

- (void)setUpForSegmentColor:(UIColor *)segmentColor
titleColor:(UIColor *)titleColor
selectedTitleColor:(UIColor *)selectedTitleColor
font:(UIFont *)font
cornerRadius:(CGFloat)cornerRadius ;

@end
55 changes: 55 additions & 0 deletions NYSegmentedControlDemo/NYSegmentedControl+CBDSettings.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
//
// NYSegmentedControl+CBDSettings.m
// SmartMathsMP
//
// Created by Colas on 11/08/2015.
// Copyright (c) 2015 cassiopeia. All rights reserved.
//

#import "NYSegmentedControl+CBDSettings.h"

@implementation NYSegmentedControl (CBDSettings)


- (void)setUpForSegmentColor:(UIColor *)segmentColor
titleColor:(UIColor *)titleColor
selectedTitleColor:(UIColor *)selectedTitleColor
font:(UIFont *)font
cornerRadius:(CGFloat)cornerRadius
{
/*
Normal
*/
self.titleFont = font ;
self.titleTextColor = titleColor ;

/*
Selected
*/
self.selectedTitleFont = font ;
self.selectedTitleTextColor = selectedTitleColor ;

// self.segmentIndicatorBackgroundColor = segmentColor ;

self.segmentIndicatorGradientTopColor = segmentColor ;//[UIColor colorWithRed:0.30 green:0.50 blue:0.88f alpha:1.0f];
self.segmentIndicatorGradientBottomColor = segmentColor ; //[UIColor colorWithRed:0.20 green:0.35 blue:0.75f alpha:1.0f];
self.drawsGradientBackground = YES ;
// self.segmentIndicatorBorderColor = segmentColor ;
// self.segmentIndicatorBorderWidth = 0.0f ;
//
/*
General
*/
// self.borderWidth = 0.0f ;
// self.borderColor = [UIColor clearColor] ;
// self.backgroundColor = [UIColor clearColor] ;
// self.cornerRadius = cornerRadius ;
//
// self.segmentIndicatorInset = 0.0f ;
//
// self.drawsGradientBackground = NO;
// self.drawsSegmentIndicatorGradientBackground = NO;

}

@end