3
私はdrawrectメソッドでいくつかの問題があるようです。私は、CGContextDrawPDFPageを使用してビューにPDFページを描画しています。そして、読み込んだビューのフレームでUIViewアニメーションを実行します。しかし、drawrectメソッドの最後にアニメーションを呼び出すと、実際にUIViewが実際に画面に表示されるまでのアニメーションの途中にアニメーションが表示されます(時には2秒後に表示されます)。 。ビューが描画完了したかどうかをチェックする方法任意のアイデアやヘルプははるかに高く評価されるだろうuiviewがスクリーン/完成した図面に現れたときは、どのように確認できますか?
ここに私のコードだ...
-(void)drawRect:(CGRect)inRect{
pageRef = [[PDFManager sharedManager] getLargePDFPageRefForPage:pageNumber];
if(pageRef) {
ctx = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(ctx, 0.0, [self bounds].size.height);
CGContextScaleCTM(ctx, 1.0, -1.0);
CGContextConcatCTM(ctx, CGPDFPageGetDrawingTransform(pageRef, kCGPDFCropBox, [self bounds], 0, true));
CGContextSetInterpolationQuality(ctx, kCGInterpolationNone);
CGContextSetRenderingIntent(ctx, kCGRenderingIntentDefault);
CGContextDrawPDFPage(ctx, pageRef);
}
[self moveFrame];
}
-(void)moveFrame{
[UIView animateWithDuration:0.7 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
self.frame = CGRectMake(0, 0, 500, 400);
} completion:^(BOOL finished) {
}];
}
どこから来ているのか分かりませんが、「サブビューの追加」がuiviewの描画rectメソッドでも呼び出されているので、これで問題は解決しません。ニースは思った。 – JapanDev
したがって、サブビューを追加するときは、 '[subview setNeedsDisplay:YES]'でダーティとマークしてください。これは強制的に 'drawRect:'メソッドを呼び出すはずです。 – Eimantas
問題はdrawRect:が直ちに呼び出されていないことです。問題は終了していますが、ビューを表示するには時間がかかります。したがって、私は画面上でレンダリングされたビューを知りたいと思います。 – JapanDev