2010-03-08 3 views
2

У меня есть объект UIView подкласса внутри uiscrollview, который отображает страницу pdf. Я могу увеличить эту страницу. Но когда я это делаю, внутренний вид увеличивается и становится размытым. Я понял, что внутренний вид shud будет обновлен, и я назвал setNeedsDisplay. Но никаких изменений не произошло, и это уже сейчас. Ниже приведен код для drawRect для подкласса uiview.Как сделать subview в UIScrollView обновленным, когда мы его увеличим?

- (void)drawRect:(CGRect)rect 
{ 
if(document)//the pdf document object 
{  
    CGContextRef ctx = UIGraphicsGetCurrentContext(); 
    CGContextSaveGState(ctx); 
    CGContextTranslateCTM(ctx, 0.00, [self bounds].size.height); 
    NSLog(@"%f",[self bounds].size.height); 
    CGContextScaleCTM(ctx, 1.0, -1.0); 
    CGContextConcatCTM(ctx, CGPDFPageGetDrawingTransform(page, kCGPDFCropBox, 
                 [self bounds], 0, true)); 
    CGContextDrawPDFPage(ctx, page);  
    CGContextRestoreGState(ctx); 
} 
} 
+0

Каков код вашего контроллера представления, где вы обрабатываете методы делегата прокрутки? –

ответ

1

Заканчивать пример CATiledLayer, представленной ScrollViewSuite пример кода:.

http://developer.apple.com/iphone/library/samplecode/ScrollViewSuite/Introduction/Intro.html

Пример TapToZoom иллюстрирует способ получить представление перерисовывать его содержимое, когда один масштабирование Т.е. вам нужно каким-то образом установить, чтобы кадр вашего представления был больше экрана, или, может быть, вы также можете использовать преобразования, однако я никогда раньше не использовал преобразования.

1

Немного поздно ответить, так же, как указано, вам нужно установить рамку subview каждый раз, когда применяется масштабирование. Убедитесь, что вы создаете резервные копии исходных размеров рамки, чтобы применить к нему коэффициент масштабирования.

Прокрутка не изменяет рамки своих подзонов при масштабировании подзонов, поэтому содержимое subview не обновляется. Я нашел использование преобразований и других сложных, поэтому я просто попробовал упомянутый метод, и это сработало для меня.

Смежные вопросы