gpt4 book ai didi

ios - 自定义绘图在退出之前不可见

转载 作者:行者123 更新时间:2023-11-29 05:06:50 26 4
gpt4 key购买 nike

在我的 UIView 子类中,自定义绘图。原始绘图工作正常,即当从 viewDidLoad 触发或从滑动或摇动手势触发时,这会清除屏幕并重新绘制。

当我尝试已经存在的东西上绘制时,问题就出现了 - 它的行为不稳定,通常不可见并且从哪里偏移我已经放置了它,但是如果我按主页按钮,它就会出现。按下主页按钮后,随着 View 消失,我可以瞥见我试图绘制的内容。如果我重新启动应用程序,所有绘图都在那里。给出了什么?

这是我的设置方式:

- (void)drawRect:(CGRect)rect; {
cgRect = [[UIScreen mainScreen] bounds];
cgSize = cgRect.size;
context = UIGraphicsGetCurrentContext();

for (int i=0; i<(cgSize.width / spacing); i++) {
for (int j=0; j<(cgSize.height / spacing); j++) {
[self drawObjectAtPosX:i*spacing andY:j*spacing withId:i*(cgSize.height / spacing) + j];
}
}

某些对象上有隐形按钮。当按下它们时,对象将以不同的颜色重新绘制:

-(void)buttonPressed:theButton {
int which = [theButton tag];
if ([[objectArray objectAtIndex:which] shouldBeRedrawn]) {
[self redrawObjectforID:which];
}
}

-(void)redrawObjectforID:(int)which {
myObject *chosenOne = [objectArray objectAtIndex:which];
CGFloat m_x = chosenOne.x;
CGFloat m_y = chosenOne.y;
context = UIGraphicsGetCurrentContext();
CGContextSetRGBStrokeColor(context, 205/255.0,173/255.0,0.0,1.0); // LINE color
CGContextSetRGBFillColor(context, 205/255.0,197/255.0,0.0,1.0); // FILL color
CGContextTranslateCTM(context, m_x, m_y);
CGContextRotateCTM(context, chosenOne.rotation);
for (int i=0; i<4; i++) {
[self drawObjectSegmentatX:m_x andY:m_y forID:which inContext:context]; // custom drawing stuff
CGContextRotateCTM(context, radians(90));
}
CGContextRotateCTM(context, -chosenOne.rotation);
CGContextTranslateCTM(context, -m_x, -m_y);
}

最佳答案

回答我自己的问题,但这是我今天学到的:

所有自定义绘图都需要位于 DrawRect 中。我看到的小故障行为是 View 消失或恢复调用 DrawRect 的结果。搬家了,可以用了。

自定义重绘的位置仍然处于关闭状态,但这是另一个问题。

关于ios - 自定义绘图在退出之前不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4712222/

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