मुझे एक टाइल वाली छवि दिखाने के लिए एक कस्टम UIView मिला है।एनीमेशन के दौरान UIView स्केलिंग
- (void)drawRect:(CGRect)rect
{
...
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClipToRect(context,
CGRectMake(0.0, 0.0, rect.size.width, rect.size.height));
CGContextDrawTiledImage(context, imageRect, imageRef);
...
}
अब मैं उस दृश्य के आकार को एनिमेट करने की कोशिश कर रहा हूं।
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.3];
// change frame of view
[UIView commitAnimations];
टाइल आकार को लगातार छोड़कर, टाइल वाले क्षेत्र के लिए बस मुझे उम्मीद है कि मैं क्या अपेक्षा करूंगा। इसके बजाए क्या होता है कि जब क्षेत्र दृश्य की मूल सामग्री बढ़ता है तो नए आकार में स्केल किया जाता है। कम से कम एनीमेशन के दौरान। तो एनीमेशन की शुरुआत और अंत में सब कुछ अच्छा है। एनीमेशन के दौरान टाइल्स विकृत हो जाते हैं।
सीए स्केल करने की कोशिश क्यों कर रहा है? मैं इसे ऐसा करने से कैसे रोक सकता हूं? मुझसे क्या छूट गया?
ऐसा लगता है कि यह दृश्य की सामग्री मोड से संबंधित है। लेकिन इसे UIViewContentModeLeft पर सेट करने से वास्तव में इसे हल नहीं किया जाता है। यह तब स्केल नहीं करता है लेकिन तुरंत नए फ्रेम आकार में पॉप हो जाता है। इसे UIViewContentModeRedraw पर सेट करना एनीमेशन के दौरान बिल्कुल आकर्षित करने के लिए कॉल नहीं कर रहा है। – tcurdt