通过 TestFlight 加载时 IOS 应用程序不同
Posted
技术标签:
【中文标题】通过 TestFlight 加载时 IOS 应用程序不同【英文标题】:IOS app different when loading via TestFlight 【发布时间】:2017-03-13 17:22:59 【问题描述】:我在故事板控制器中有一个视图,它扩展了我的自定义 UIView,当我尝试在 drawRect 中绘制渐变时,它在通过 XCode 加载到设备/sim 时显示正常,但是当我上传到 iTunes 后通过 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)];
【问题讨论】:
【参考方案1】:我通过另一种方式创建渐变解决了这个问题,奇怪的是它在加载时首次显示而不需要旋转。
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);
【讨论】:
以上是关于通过 TestFlight 加载时 IOS 应用程序不同的主要内容,如果未能解决你的问题,请参考以下文章
iOS 8.2 升级不在 UIImageView 中显示图像,但仅在通过 iTunes 或 TestFlight 而不是 Xcode 加载的应用程序中
如何在运行时判断 iOS 应用程序是不是正在通过 TestFlight Beta 安装运行
从 testflight 安装时,我的 IOS 应用程序崩溃
通过 testflight 将 monotouch 开发的应用程序部署到 ios 6 但在 ios5 上可以