3
我似乎遇到了一些直接方法的問題。我正在使用CGContextDrawPDFPage將PDF頁面繪製到視圖上,然後希望在視圖的框架上加載UIView動畫。但是,如果我在drawrect方法的末尾調用動畫,則會導致動畫效果不佳,因爲在UIView實際出現在屏幕上之前,動畫會在其持續時間的中途(有時2秒鐘後)(012秒, 。檢查視圖是否已經完成繪製任何意見或幫助的方式,將不勝感激如何檢查屏幕上/畫圖中出現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方法之前,「add subview」完成被調用。雖然好想。 – JapanDev 2012-03-21 10:52:47
所以當添加子視圖時,用'[subview setNeedsDisplay:YES]'將其標記爲髒。這應該強制調用'drawRect:'方法。 – Eimantas 2012-03-21 10:54:58
問題不在於drawRect:不是直接調用,問題在於完成但需要時間來顯示視圖。因此,我想知道何時在屏幕上呈現視圖。 – JapanDev 2012-03-21 11:04:27