@@ -790,9 +790,12 @@ - (UIImage *)selectedBackgroundImage {
790
790
UIColor *segmentHighlight = [UIColor colorWithRed: 1 green: 1 blue: 1 alpha: 0.7 ];
791
791
792
792
// gradients
793
- NSArray *segmentGradientColors = @[(id )segmentGradientTopColor.CGColor, (id )segmentGradientBottomColor.CGColor];
794
- CGFloat segmentGradientLocations[] = {0 , 1 };
795
- CGGradientRef segmentGradient = CGGradientCreateWithColors (colorSpace, (__bridge CFArrayRef)segmentGradientColors, segmentGradientLocations);
793
+ CGGradientRef segmentGradient = NULL ;
794
+ if (segmentGradientTopColor && segmentGradientBottomColor) {
795
+ NSArray *segmentGradientColors = @[(id )segmentGradientTopColor.CGColor, (id )segmentGradientBottomColor.CGColor];
796
+ CGFloat segmentGradientLocations[] = {0 , 1 };
797
+ segmentGradient = CGGradientCreateWithColors (colorSpace, (__bridge CFArrayRef)segmentGradientColors, segmentGradientLocations);
798
+ }
796
799
797
800
// shadows
798
801
CGSize segmentHighlightOffset = CGSizeMake (0.1 , 1.1 );
@@ -813,10 +816,12 @@ - (UIImage *)selectedBackgroundImage {
813
816
UIBezierPath *segmentBasePath = [UIBezierPath bezierPathWithRoundedRect: segmentBaseRect cornerRadius: radius];
814
817
CGContextSaveGState (context);
815
818
[segmentBasePath addClip ];
816
- CGContextDrawLinearGradient (context, segmentGradient,
817
- CGPointMake (CGRectGetMidX (segmentBaseRect), CGRectGetMinY (segmentBaseRect)),
818
- CGPointMake (CGRectGetMidX (segmentBaseRect), CGRectGetMaxY (segmentBaseRect)),
819
- 0 );
819
+ if (segmentGradient) {
820
+ CGContextDrawLinearGradient (context, segmentGradient,
821
+ CGPointMake (CGRectGetMidX (segmentBaseRect), CGRectGetMinY (segmentBaseRect)),
822
+ CGPointMake (CGRectGetMidX (segmentBaseRect), CGRectGetMaxY (segmentBaseRect)),
823
+ 0 );
824
+ }
820
825
CGContextRestoreGState (context);
821
826
822
827
// inner shadow
0 commit comments