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