gpt4 book ai didi

ios - 在 View 内的矩形内绘制简单的线性渐变

转载 作者:行者123 更新时间:2023-12-01 18:03:11 25 4
gpt4 key购买 nike

我正在阅读有关渐变的文档,但我有点迷失了。
我有一个 View ,在该 View 中,我只想在矩形(小于 View )内从下到上绘制一个简单的黑色到灰色线性渐变。
我怎么能在不继承任何东西的情况下做到这一点(我已经阅读了很多需要对 View 进行子类化的东西)?

我正在寻找一种方法来做到这一点,就像我在各种平台上所做的那样简单。类似(无语言:-)):

blackcolor = MakeBlack();
whiteColor = MakeWhite();

startPoint = MakeStartPoint();
endPoint = MakeEndPoint();

onthisgraphicport = SetGraphicPort(self.view);
clippingRect = MakeClipRect();

DrawGradient(from:whiteColor, to:blackcolor, from:startPoint, to:endPoint, onthisgraphicport, intoThisRect:clippingRect);

感谢您的帮助。

最佳答案

此代码段可能会有所帮助。我前段时间在网上找到了代码。不幸的是,我忘记了这个网站,所以不知道该归功于谁。

代码按原样绘制白色到黑色的渐变。只需根据您的需要更改矩形和颜色。

@interface MyView : UIView {
CGGradientRef _gradientRef;
}

@end

@implementation MyView

- (void) dealloc
{
[super dealloc];
}

- (id) initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
CGFloat colors[] =
{
1.0f, 1.0f, 1.0f, 1.0f,
0.0f, 0.0f, 0.0f, 1.0f,
};
_gradientRef = CGGradientCreateWithColorComponents(rgb, colors, NULL, sizeof(colors) / (sizeof(colors[0]) * 4));
CGColorSpaceRelease(rgb);
}

return self;
}

- (void) drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGPoint start = rect.origin;
start.y = 0;
CGPoint end = CGPointMake(rect.origin.x, rect.size.height);
CGContextDrawLinearGradient(context, _gradientRef, start, end, kCGGradientDrawsBeforeStartLocation | kCGGradientDrawsAfterEndLocation);

[super drawRect:rect];
}

@end

关于ios - 在 View 内的矩形内绘制简单的线性渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4975956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com