iPhoneアプリをiOS 5 GMで公開する準備をしていて、UIViewのバグを見つけました。サブクラスのdrawRectメソッドをオーバーライドすると、Simulatorは目的の結果を表示しますが、実際のデバイスでテストしようとすると、drawRectのオーバーライドには何の効果もありません。iOS 5 UIView 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用Simulatorで壊れているのは、iOS 5 Deviceだけです。
コードを投稿してください。iOSよりも問題がある可能性があります。なぜなら、本当にバグがあると他のユーザーも同じように遭遇してしまうからです。この分野のあらゆる問題)。 – DarkDust
また、iOS 5はまだNDAの下にありますので、Dev-Forumに行きたいと思うかもしれません。 – Phlibbo
私はdevフォーラムに質問を投稿しましたが、今まで誰も答えがありませんでした。 – Jay