2014-09-20 12 views
18

पर स्नैपशॉट विधियों को तोड़ दिया गया है किसी अज्ञात कारण के लिए आईफोन 6 सिम्युलेटर (और डिवाइस) पर सभी स्क्रीनशॉट विधियों के साथ एक संभावित बग प्रतीत होता है।आईफोन 6 डिवाइस और सिम्युलेटर

snapshotViewAfterScreenUpdates: जब भी मैं सहित स्क्रीनशॉट तरीकों में से किसी भी फोन resizableSnapshotViewFromRect: drawViewHierarchyInRect:

हाँ करने के लिए सेट afterScreenUpdates साथ, स्क्रीन flickers। यदि NO पर सेट किया गया है, तो कोई झिलमिलाहट नहीं होती है, लेकिन मैं जिस कार्यक्षमता की आवश्यकता है उसे प्राप्त करने में असमर्थ हूं।

ये विधियां आईफोन 6 और 6+ को छोड़कर अन्य सभी सिमुलेटर में आईओएस 7.1 और आईओएस 8 दोनों के साथ ठीक काम करती हैं।

आश्चर्यजनक रूप से पर्याप्त है, अगर मैं स्टोरीबोर्ड का उपयोग करके एक नया प्रोजेक्ट शुरू करता हूं और समान कोड का प्रयास करता हूं तो मैं झिलमिलाहट का पुनरुत्पादन नहीं कर सकता।

enter image description here

और यहाँ बहुत ही सरल दृश्य नियंत्रक है:

@implementation TestSnapshotController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Snap" style:UIBarButtonItemStylePlain target:self action:@selector(_snap)]; 

    self.blueView = [UIView new]; 
    self.blueView.backgroundColor = [UIColor blueColor]; 
    self.blueView.frame = CGRectMake(100.0f, 100.0f, 100.0f, 100.0f); 
    [self.view addSubview:self.blueView]; 
} 

- (void)_snap 
{ 
    [self.blueView snapshotViewAfterScreenUpdates:YES]; 
} 

@end 

यहाँ और मेरे AppDelegate सिर्फ मामले में है: मैं अपने गैर स्टोरीबोर्ड परियोजना का उपयोग कर झिलमिलाहट के एक gif संलग्न

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

    TestSnapshotController *testVC = [TestSnapshotController new]; 
    UINavigationController *rootNavVC = [[UINavigationController alloc] initWithRootViewController:testVC]; 

    self.window.rootViewController = rootNavVC; 
    self.window.backgroundColor = [UIColor whiteColor]; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 

किसी भी मदद की सराहना की जाएगी!

उत्तर

5

हम इस एक ही मुद्दा मिल रही हो, निम्नलिखित कोड चलाने:

[window drawViewHierarchyInRect:window.bounds afterScreenUpdates:YES]; 

एकमात्र समाधान है कि हम अब तक पाया है यह सुनिश्चित करें कि आवेदन छवियों का शुभारंभ किया गया है iPhone 6 और के लिए आकार बनाने के लिए है 6 + और फिर हम झिलमिलाहट नहीं कर रहे हैं।

2

रियांस समाधान के बाद, मैंने एक लॉन्च स्क्रीन xib (या स्टोरीबोर्ड) जोड़ा और इसने आईफोन 6 और 6 प्लस पर इस मुद्दे को हल किया।

तो सुनिश्चित करें कि आप अपनी परियोजना सेटिंग में सेट कर दिया है, यह कुछ इस तरह लग रही अंत करना चाहिए:

enter image description here

0

यह एप्पल के पक्ष में एक बग है कि बढ़ाया क्षुधा पर होता प्रतीत हो रहा है (उन snapshotViewAfterScreenUpdates glitch on iOS 8

मूल रूप से उपयोग करता है:: कि है कोई डिजाइन/आस्तियों/लेआउट iPhone 6/6 +) के लिए समर्थन यह भी मुझे इस पर मिल में मदद की [view.layer renderInContext:UIGraphicsGetCurrentContext()];

संबंधित मुद्दे