【问题标题】:IOS app different when loading via TestFlight通过 TestFlight 加载时 IOS 应用程序不同
【发布时间】: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)];
}

【问题讨论】:

    标签: ios objective-c app-store-connect xcode8 itunes-app


    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-17
      • 1970-01-01
      相关资源
      最近更新 更多