के लिए ज़ूम इन करने के बाद सामग्री प्रस्तुत करना मैंने देखा है और ऐसा लगता है कि लोग कहते हैं कि आप अब ज़ूम इन करने के बाद डेटा को फिर से प्रस्तुत कर सकते हैं कि आप UIScrollView के लिए स्केल फैक्टर को जानते हैं। मैंने आपकी परत को CATiledLayer पर बनाने के बारे में कुछ पोस्ट भी देखी हैं और स्तरों को सेट करेंऑफेंटबियास और स्तरऑफडेंट सेट करें।UIScrollView
क्या मैं एक UIScrollView है, और यह, एक ResultsView जो UIView का एक उपवर्ग है:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
CATiledLayer *tiledLayer = (CATiledLayer *)self.layer;
tiledLayer.levelsOfDetailBias = 3;
tiledLayer.levelsOfDetail = 3;
self.opaque = YES;
}
return self;
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
// Drawing code
}
*/
+ (Class)layerClass {
return [CATiledLayer class];
}
मेरी कक्षा जहाँ मैं UIScrollView और ResultsView है में, मैं कार्य करें:
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return self.ResultsView;
}
क्या पाठ को पुनः प्रस्तुत करने के लिए पर्याप्त है (तेज)? या मैं यदि हां, तो मैं ऐसा करने के लिए कैसे यकीन नहीं है
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx {
}
में कुछ लागू करने की आवश्यकता है। UIScrollView और ResultsView के साथ मेरी कक्षा में, परिणाम दृश्य (XIB में) में, मेरे पास केवल कुछ UILabels और UIViews हैं (UIViews दृश्य के लिए शीर्षक/पाद लेख के लिए उपयोग किए जाते हैं)। इसलिए मुझे नहीं पता कि परिणामव्यू से उनको कैसे निकाला जाए। हालांकि परिणाम दृश्य में XIB में इसके बच्चे के रूप में UILabels और UIViews हैं, मुझे यकीन नहीं है कि मैं परिणामव्यू कक्षा से उनको कैसे हटा दूंगा, और मुझे वैसे भी करने की आवश्यकता होगी।
या यह गलत दृष्टिकोण है? क्या मुझे केवल UILabel और UIView को स्केल कारक द्वारा स्केल फैक्टर द्वारा आकार बदलने की आवश्यकता है: प्रतिनिधि विधि? टीआईए
धन्यवाद। यह वास्तव में अच्छी तरह से काम किया। मुझे नहीं लगता कि मुझे इस तरह का जवाब मिल गया होगा। क्या आप समझा सकते हैं कि आपको पहले लाइन स्केल * = की आवश्यकता क्यों है ... क्या डिवाइस के लिए खिड़की/स्क्रीन/स्केल रिटर्न अलग-अलग होगा? धन्यवाद। –
हां, यह रेटिना डिस्प्ले को संगत बनाता है। आईपैड और गैर-रेटिना डिस्प्ले आईफ़ोन/आईपॉड स्पर्श पर, विंडो स्क्रीन स्केल 1.0 है इसलिए इसका कोई प्रभाव नहीं पड़ता है। रेटिना डिस्प्ले पर यह 2.0 है इसलिए यह उन डिस्प्ले के लिए पैमाने को सही तरीके से समायोजित करता है। – afarnham
एक दृश्य क्लीनर दृष्टिकोण यह देखने के लिए हो सकता है कि आप UIView के उप-वर्ग को ज़ूम कर रहे हैं (यदि यह पहले से नहीं है) और एक विधि बनाएं जो प्रत्येक सबव्यू को अपनी सामग्री को अपडेट करने के लिए बताती है। सभी सबव्यूव्स के माध्यम से सीधे लूपिंग के बजाय स्केलफ़ैक्टर। यदि आपके पास कुछ चित्र हैं जो कस्टम ड्राइंग करते हैं तो यह आपको अधिक बढ़िया अनाज नियंत्रण देगा क्योंकि आप सेटNeedsDisplay को भी कॉल करना चाहते हैं। – afarnham