gpt4 book ai didi

ios - drawRect 不调整大小并跑出屏幕 3.5 英寸屏幕

转载 作者:行者123 更新时间:2023-11-29 02:58:54 25 4
gpt4 key购买 nike

我正在使用绘制矩形来绘制带有角半径的矩形。该代码完美运行。在 4 英寸屏幕上查看时,您会看到矩形。在 3.5 英寸屏幕上查看时,矩形不会调整大小并超出屏幕底部。有什么指点吗?

- (void)drawRect:(CGRect)rect
{
[super drawRect:rect];

CGContextRef context = UIGraphicsGetCurrentContext();

CGRect rrect = CGRectMake(20, 30, 280, 515);
CGFloat radius = 7;

CGFloat minx = CGRectGetMinX(rrect), midx = CGRectGetMidX(rrect), maxx = CGRectGetMaxX(rrect);
CGFloat miny = CGRectGetMinY(rrect), midy = CGRectGetMidY(rrect), maxy = CGRectGetMaxY(rrect);

// Start at 1
CGContextMoveToPoint(context, minx, midy);
// Add an arc through 2 to 3
CGContextAddArcToPoint(context, minx, miny, midx, miny, radius);
// Add an arc through 4 to 5
CGContextAddArcToPoint(context, maxx, miny, maxx, midy, radius);
// Add an arc through 6 to 7
CGContextAddArcToPoint(context, maxx, maxy, midx, maxy, radius);
// Add an arc through 8 to 9
CGContextAddArcToPoint(context, minx, maxy, minx, midy, radius);

// Close the path
CGContextClosePath(context);

CGContextSetStrokeColorWithColor(context, [[UIColor whiteColor] CGColor]);
CGContextSetRGBFillColor(context, 255, 255, 255, 1.0);

// Fill & stroke the path
CGContextDrawPath(context, kCGPathFillStroke);

}

最佳答案

CGRect rrect = CGRectMake(20, 30, 280, 515);

这就是问题所在。您从偏移量 20 开始绘制高度为 515 的矩形,而您的屏幕并没有那么长。尝试使用 View 的框架来绘制而不是硬编码值

CGRect rrect = CGRectMake(20, 30, self.frame.size.width - 20*2, self.frame.size.height - 30*2);

关于ios - drawRect 不调整大小并跑出屏幕 3.5 英寸屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23527055/

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