कुछ कारणों से, मैं ऐसा करने के लिए एक CAScrollLayer का उपयोग करने से बचने की कोशिश कर रहा हूं। जिस प्रभाव के बाद मैं जा रहा हूं वह प्रगतिशील रूप से प्रकट होता है (नीचे से ऊपर तक) एक कैलियर की सामग्री (एक पीएनजी जिसे मैंने पहले लोड किया था)। इसलिए मैं यह कर के बारे में सोचा:मैं एक छवि को प्रगतिशील रूप से प्रकट करने के लिए कैवेलर की सीमाओं को कैसे एनिमेट कर सकता हूं?
layer.anchorPoint = CGPointMake(.5, 1);
CABasicAnimation* a = [CABasicAnimation animationWithKeyPath:@"bounds.size.height"];
a.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
a.fillMode = kCAFillModeBoth;
a.removedOnCompletion = NO;
a.duration = 1;
a.fromValue = [NSNumber numberWithFloat:0.];
a.toValue = [NSNumber numberWithFloat:layer.bounds.size.height];
[layer addAnimation:a forKey:nil];
समस्या इस के साथ आप बता सकते हैं परत की सामग्री सीमा के साथ बढ़ाया जाता है। मैं सीमाओं को बदलने की कोशिश कर रहा था लेकिन सामग्री हमेशा मूल आकार में रहने के लिए, ताकि प्रभावशाली सीमाएं छवि को क्लिप कर सकें और जैसे ही मैं बाउंड बढ़ाता हूं। ऊंचाई, छवि स्वयं "प्रकट करती है"।
कोई विचार यह है कि इसे कैसे खींचें या मैं क्या खो सकता हूं?
मैं, लेकिन एक से अधिक स्तर पर दक्षता की वजह से जानते हैं (वहाँ कर सकते हैं इस प्रभाव में से कुछ बार एक बार चल रहे हैं और मुझे खुद को कैलियर से निपटने की ज़रूरत है) मैंने इस तरह से नहीं जाने का फैसला किया। अब मैं contentRect के साथ प्रयोग कर रहा हूं, और मैं इसे लगभग सही करने में सक्षम था। एकमात्र समस्या यह है कि सामग्री रिक्ति एनिमेटिंग है, मुझे परत के अंदर खींचा गया स्ट्रोक-ट्रेल भी मिलता है। – SaldaVonSchwartz
contentRect के लिए प्रलेखन कहता है कि "यदि यूनिट आयतों के बाहर पिक्सल का अनुरोध किया जाता है, तो सामग्री छवि के किनारे पिक्सेल को बाहर बढ़ाया जाएगा" तो मुझे लगता है कि मुझे स्ट्रोक प्रभाव मिल रहा है – SaldaVonSchwartz