2017-03-13 23 views
0

加载时,我有在故事板控制器的视图,其延伸我的自定义的UIView和当我尝试绘制的drawRect它通过的XCode上加载到设备/ SIM卡时显示正常的梯度,但是当我通过TestFlight安装上传到iTunes连接后,渐变首先不显示(显示黑色背景) - 需要旋转设备,渐变再次显示正常。什么可能导致这种行为?IOS应用不同经由TestFlight

- (void)drawRect:(CGRect)rect { 
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 
CGContextRef context = UIGraphicsGetCurrentContext(); 

NSArray *gradientColors = [NSArray arrayWithObjects: 
          (id)[[self colorWithHexString:@"FF7542"]CGColor], 
          (id)[[self colorWithHexString:@"FF7542"]CGColor], 
          (id)[[self colorWithHexString:@"FFC0A1"]CGColor], 
          nil]; 


CGFloat gradientLocations[] = {0, 1}; 
CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef) gradientColors, gradientLocations); 

CGPoint startPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMinY(rect)); 
CGPoint endPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMaxY(rect)); 

CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0); 
CGGradientRelease(gradient); 
CGColorSpaceRelease(colorSpace); 

NSShadow *shadow = [[NSShadow alloc] init]; 
[shadow setShadowColor : BLACK_SHADOW]; 
[shadow setShadowOffset : CGSizeMake (1.0, 1.0)]; 
} 

回答

0

我解决了这个问题,通过另一种方式创建我的渐变,奇怪的是它显示第一次加载时不需要旋转。

CGContextRef current_context = UIGraphicsGetCurrentContext(); 
CGContextSaveGState(current_context); 

// Gradient 
CGFloat locations[2] = {0.0, 1.0}; 
CGFloat components[8] = {1.00,0.75,0.63,1.0,1.00,0.46,0.26,1.0}; 
CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB(); 
CGGradientRef gradient = CGGradientCreateWithColorComponents(colorspace, components, locations, 2); 
CGPoint startPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMinY(rect)); 
CGPoint endPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMaxY(rect)); 
CGContextDrawLinearGradient(current_context, gradient, startPoint, endPoint, 0); 
CGGradientRelease(gradient); 
CGColorSpaceRelease(colorspace); 
相关问题