2014-09-20 33 views
18

Bilinmeyen bir nedenle, iPhone 6 simülatöründeki (ve aygıtta) tüm ekran görüntüsü yöntemleriyle olası bir hata var gibi görünüyor.iPhone 6 aygıtında ve simülatöründe kırılan anlık görüntü yöntemleri

snapshotViewAfterScreenUpdates: Ben de dahil olmak üzere ekran görüntüsü yöntemi çağırmadan zaman resizableSnapshotViewFromRect: drawViewHierarchyInRect: EVET olarak ayarlanmış afterScreenUpdates ile

, ekran titriyor. HAYIR olarak ayarlanırsa, titreşim oluşmaz, ancak ihtiyacım olan işlevselliği alamıyorum.

Bu yöntemler, iPhone 6 ve 6+ dışındaki tüm diğer simülatörlerde hem iOS7.1 hem de iOS8 ile uyumludur.

Kaçınılmaz bir şekilde, storyboard'lar kullanarak yepyeni bir projeye başlıyorum ve benzer kodları denersem, titreşimi yeniden oluşturamıyorum. Burada

enter image description here

Ve çok basit görünüm denetleyicisi olduğu: burada

@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 

Ve AppDelegate ihtimale karşı: Ben benim olmayan film şeridi projesini kullanarak titremesinin bir gif iliştirilmesi

- (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; 
} 

Herhangi bir yardım çok takdir edilecektir! Aşağıdaki kodu çalıştırırken Bu aynı sorunu görüyoruz

cevap

5

:

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

şu ana kadar bulduk tek çözüm uygulama iPhone 6 ve için ölçekli görüntüleri başlatmak olduğunu emin olmaktır 6+ ve sonra artık titremeyi yapmıyoruz.

2

Ryans çözümünden sonra, bir başlatma ekranı xib (veya storyboard) ekledim ve bu, iPhone 6 ve 6'daki sorunu çözdü. Yani

, bu uygulamanın proje ayarlarında ayarlanmış olduğundan emin olun bu şekilde görünür bitmeli:

enter image description here ölçekli uygulamalarda oluşur Apple'ın tarafında bir hata olduğunu tahmin etmekteyiz

İlgili konular