gpt4 book ai didi

iphone - 如何使用 CGContext 在 UIView 中设置背景颜色?

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

我开发了一个应用程序,我想在其中设置已经在 UIViewController 上设置的 UIView 的背景颜色。代码如下,

@implementation frmGraphView


- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame])
{
// Initialization code
}
return self;
}


- (void)drawRect:(CGRect)rect
{
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextClearRect(ctx, rect);
//CGContextSetCMYKFillColor(ctx, 35.0, 56.0, 34.0, 30.0, 1.0);
//CGContextSetRGBFillColor(ctx, 92.0f, 95.0f, 97.0f, 1.0f);
//CGContextFillRect(ctx, CGRectMake(0, 0, 300, 280));



CGContextSetRGBStrokeColor(ctx, 2.0, 2.0, 2.0, 1.0);
CGContextSetLineWidth(ctx, 2.0);
float fltX1,fltX2,fltY1,fltY2=0;
NSArray *hoursInDays = [[NSArray alloc] initWithObjects:@"0",@"1" ,@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"11",@"12", nil];
fltX1 = 30;
fltY1 = 5;
fltX2 = fltX1;
fltY2 = 270;

//Dividing the Y-axis
CGContextMoveToPoint(ctx, fltX1, fltY1);
CGContextAddLineToPoint(ctx, fltX2, fltY2);
//float y = 275;
for(int intIndex = 0 ; intIndex < [hoursInDays count] ; fltY2-=20, intIndex++)
{
CGContextSetRGBStrokeColor(ctx, 2.0, 2.0, 2.0, 1.0);
CGContextMoveToPoint(ctx, fltX1-3 , fltY2);
CGContextAddLineToPoint(ctx, fltX1+3, fltY2);
CGContextSelectFont(ctx, "Helvetica", 14.0, kCGEncodingMacRoman);
CGContextSetTextDrawingMode(ctx, kCGTextFill);
CGContextSetRGBFillColor(ctx, 0, 255, 255, 1);
CGAffineTransform xform = CGAffineTransformMake(
1.0, 0.0,
0.0, -1.0,
0.0, 0.0);
CGContextSetTextMatrix(ctx, xform);
const char *arrayDataForYAxis = [[hoursInDays objectAtIndex:intIndex] UTF8String];
CGContextShowTextAtPoint(ctx, fltX1-18, fltY2-18 , arrayDataForYAxis, strlen(arrayDataForYAxis));
CGContextStrokePath(ctx);
}
CGContextSetRGBStrokeColor(ctx, 2.0, 2.0, 2.0, 1.0);
CGContextSetLineWidth(ctx, 2.0);

fltX1 = 5;
fltY1 = 250;
fltX2 = 270;
fltY2 = fltY1;

NSArray *weekDays =[[NSArray alloc] initWithObjects:@"Sun", @"Mon", @"Tus", @"Wed", @"Thu", @"Fri", @"Sat", nil];
//Dividing the X-axis
CGContextMoveToPoint(ctx, fltX1, fltY1);
CGContextAddLineToPoint(ctx, fltX2, fltY2);
//float y = 275;
for(int intIndex = 0 ; intIndex < [weekDays count] ; fltX1+=33, intIndex++)
{
CGContextSetRGBStrokeColor(ctx, 2.0, 2.0, 2.0, 1.0);
CGContextMoveToPoint(ctx, fltX1+52 , fltY2-3);
CGContextAddLineToPoint(ctx, fltX1+52, fltY2+3);
CGContextSelectFont(ctx, "Arial", 15.0, kCGEncodingMacRoman);
CGContextSetTextDrawingMode(ctx, kCGTextFill);
CGContextSetRGBFillColor(ctx, 0, 255, 255, 1);
CGAffineTransform xform = CGAffineTransformMake(
1.0, 0.0,
0.0, -1.0,
0.0, 0.0);
CGContextSetTextMatrix(ctx, xform);
const char *arrayDataForXAxis = [[weekDays objectAtIndex:intIndex] UTF8String];
CGContextShowTextAtPoint(ctx, fltX1+37, fltY2+18 , arrayDataForXAxis, strlen(arrayDataForXAxis));
CGContextStrokePath(ctx);

}
}

@end

最佳答案

这段代码怎么样?

- (void)drawRect:(CGRect)rect {

[super drawRect:rect];
CGContextRef context = UIGraphicsGetCurrentContext();

CGRect drawRect = CGRectMake(rect.origin.x, rect.origin.y,rect.size.width, rect.size.height);

CGContextSetRGBFillColor(context, 100.0f/255.0f, 100.0f/255.0f, 100.0f/255.0f, 1.0f);
CGContextFillRect(context, drawRect);
}

关于iphone - 如何使用 CGContext 在 UIView 中设置背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2571550/

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