gpt4 book ai didi

iphone - iOS 5 UIView drawRect 覆盖在设备上不起作用

转载 作者:可可西里 更新时间:2023-11-01 03:58:34 25 4
gpt4 key购买 nike

我正在准备我的 iPhone 应用程序以在 iOS 5 GM 上发布,并遇到了 UIView 的错误。当我在子类上覆盖 drawRect 方法时,模拟器会显示所需的结果,但当我尝试在实际设备上进行测试时,drawRect 覆盖根本没有任何效果。

我什至在 drawRect 重写中放置了一个日志语句并确认它正在被调用。

有没有其他人注意到这个问题?

这是我正在使用的覆盖代码:

- (void)drawRect:(CGRect)rect {
DebugLog( @"*** calling drawRect ***" );

CGContextRef context = UIGraphicsGetCurrentContext();

// draw the dark gray background
CGContextSetFillColor(context, [SkinManager getWhiteColor]);
CGContextFillRect(context, CGRectMake(0.0, 0.0, rect.size.width, rect.size.height));

// draw the text field background in white
CGContextSetFillColor(context, [SkinManager getDarkGray]);
CGContextFillRect(context, CGRectMake(2.0, 2.0, rect.size.width - 4, rect.size.height - 4));

这是生成颜色的代码

    +(const CGFloat*) getDarkGray {
UIColor *color = [UIColor colorWithRed:51/255.0 green:51/255.0 blue:51/255.0 alpha:1];

return [self getCGColor:color];
}

+(const CGFloat*) getCGColor: (UIColor*)color {
CGColorRef colorref = [color CGColor];

const CGFloat *components = CGColorGetComponents(colorref);

return components;
}

同样,此代码在 iOS 4.x 和 iOS 5 的模拟器中完美运行。唯一损坏的地方是 iOS 5 设备。

最佳答案

使用[self setNeedsDisplay];

drawRect 方法仅在初始化时调用,因此如果您的对象之前已初始化并且您需要“刷新”它,它可以传递该方法。

关于iphone - iOS 5 UIView drawRect 覆盖在设备上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7699617/

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