Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何在UIView上应用不透明度渐变?_Iphone_Objective C_Uiview_Opacity - Fatal编程技术网

Iphone 如何在UIView上应用不透明度渐变?

Iphone 如何在UIView上应用不透明度渐变?,iphone,objective-c,uiview,opacity,Iphone,Objective C,Uiview,Opacity,我希望我的UIView从100%不透明度渐变为0%不透明度。有什么想法吗?如果视图及其标签位于某个静态背景图像或颜色上,一个快速而肮脏的技巧是创建该图像或颜色的渐变PNG,并将其放置在视图上 否则,请查看您是否可以调整视图。有一个关于为对象设置渐变的精彩教程。我的建议是修改以下代码以满足您的需要 //Ray's code: void drawLinearGradient(CGContextRef context, CGRect rect, CGColorRef startColor,

我希望我的UIView从100%不透明度渐变为0%不透明度。有什么想法吗?

如果视图及其标签位于某个静态背景图像或颜色上,一个快速而肮脏的技巧是创建该图像或颜色的渐变PNG,并将其放置在视图上

否则,请查看您是否可以调整视图。

有一个关于为对象设置渐变的精彩教程。我的建议是修改以下代码以满足您的需要

//Ray's code:
void drawLinearGradient(CGContextRef context, CGRect rect, CGColorRef startColor, 
    CGColorRef  endColor) {
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    CGFloat locations[] = { 0.0, 1.0 };

    NSArray *colors = [NSArray arrayWithObjects:(id)startColor, (id)endColor, nil];

    CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, 
        (CFArrayRef) colors, locations);

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

    CGContextSaveGState(context);
    CGContextAddRect(context, rect);
    CGContextClip(context);
    CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0);
    CGContextRestoreGState(context);

    CGGradientRelease(gradient);
    CGColorSpaceRelease(colorSpace);
}

它的背景是动态渲染的,还是静态背景图像?它位于某些文本上: