2017-03-13 28 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); 
相關問題