2012-03-19 12 views
27

मैं स्क्रॉलव्यू में ज़ूम करने योग्य पीडीएफ प्रदर्शित करने के लिए बल्कि सरल कोड का उपयोग कर रहा हूं, और यह आईपैड 2 और मूल आईपैड पर खूबसूरती से काम कर रहा है। लेकिन यह आईपैड 3 पर चौंकाने वाला धीमा है। मुझे पता है कि मैं और पिक्सल दबा रहा हूं, लेकिन प्रतिपादन प्रदर्शन बस अस्वीकार्य है।कैटिल्डलेयर पीडीएफ प्रदर्शन आईपैड 3 पर खराब है रेटिना डिस्प्ले

आईओएस 5.0 और बाद में, टाइल आकार संपत्ति को मनमाने ढंग से 1024 पर क्लैंप किया गया है, जिसका अर्थ है कि टाइलें रेटिना डिस्प्ले पर आधा आकार दिखाई देती हैं। क्या किसी को इस सीमा को दूर करने का कोई तरीका मिला है?

अन्यथा, क्या किसी को आईपैड 3 पर CATiledLayer की गति में सुधार करने का कोई तरीका मिला है?

+2

http://stackoverflow.com/questions/9691891/catiledlayer-in-ipad-retina-simulator-yields-poor-performance – Mat

+1

सवाल चटाई की ओर इशारा देखना एक है आपकी समस्या के लिए कामकाज। सभी उत्तरों को देखें क्योंकि आपके मामले के लिए स्वीकार्य उत्तर में मौजूद एक से बेहतर कामकाज है। –

+0

धन्यवाद, मिहाई। दुर्भाग्यवश, उस लिंक में प्रति कार्यवाही नहीं है; केवल कुछ tweaks। और वे ज्यादातर सिम्युलेटर के लिए तैयार होते हैं और इस प्रकार डिवाइस के लिए उचित विकास के लिए हमारे लिए रुचि नहीं है। उदाहरण के लिए, एक चिमटा सामग्री को कम करने का सुझाव देता है स्केल फैक्टर 0.5 तक, जो परत को आईपैड 2 (गैर-रेटिना) रिज़ॉल्यूशन पर प्रस्तुत करने का कारण बनता है। तेज़, हां, लेकिन एक शिपिंग उत्पाद के लिए स्वीकार्य नहीं है। – dkmp

उत्तर

1

क्या आपने परत पर shouldRasterizeYES सेट करने का प्रयास किया है?

+0

ठीक है, हाँ - पाठ्यक्रम की परत rasterizing प्रदर्शन में सुधार करता है। लेकिन रास्टराइजेशन टाइल परतों के लाभ को समाप्त करता है: छवि के रूप में टाइल्स को फिर से निकालना ज़ूम किया जाता है। रास्टरराइज्ड टाइल्स 1.0 से अधिक किसी भी ज़ूम स्तर पर भयानक लगते हैं। – dkmp

0

क्या आपने इन ड्रॉ पर एक समय प्रोफाइलर चलाया था और क्या आपने अनावश्यक ड्रॉ की संभावना से इंकार कर दिया था?

मैं कुछ अजीब डबल ड्राइंग, जो आसानी से उपयोग करते हुए पाया गया था लिया है:

- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)context 
{ 
    NSLog(@"draw %@", NSStringFromCGRect(CGContextGetClipBoundingBox(context))); 
    // draw pdf 
} 

वहाँ भी साथ खेलने के लिए सेटिंग्स की एक किस्म है:

  • tiledLayer.levelsOfDetail = 2
  • tiledLayer.levelsOfDetailBias = 4
  • tiledLayer.tileSize = self.bounds.size
  • CGContextSetInterpolationQuality(context, kCGInterpolationLow)
  • CGContextSetRenderingIntent(context, kCGRenderingIntentDefault)
  • self.contentScaleFactor = 1.0
संबंधित मुद्दे