snapshotViewAfterScreenUpdates glitch na iOS 8
Zauważyłem, że uruchomienie tego spowoduje, że widok (lub główne okno, nie jestem pewien) zmieni rozmiar na chwilę, gdy działa na iPhone 6/6 + symulator skalowany z układu iPhone 5 (bez przechodzenia obrazu uruchamiania dla iPhone 6/6+): {]}
[self.view snapshotViewAfterScreenUpdates:YES];
Jakiś pomysł, jak to zrobić, gdy nie można przejść " nie " tam?
Update (Jul 13th):
wydaje się, że nie reprodukuje się już na iOS 8.4.
3 answers
Ponieważ wydawało się to problemem Apple / API, postanowiłem nie używać tej metody, gdy muszę przejść " tak."
Możesz po prostu zrobić zrzut ekranu (UIImage) widoku i umieścić go w UIImageView, aby działać jako "UIView", którego użyłeś do uzyskania z metody migawki.
Oto link do kodu: Jak przechwycić UIView do UIImage bez utraty jakości na wyświetlaczu retina
#import <QuartzCore/QuartzCore.h>
+ (UIImage *) imageWithView:(UIView *)view
{
UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:33:29
Właśnie miałem ten problem.
Powodem było to, że nie miałem zdjęć startowych odpowiednich dla iPhone 6 ani 6 plus. Innym problemem, który widziałem z powodu tego nieistniejącego obrazu, było to, że dostałem rozmiar dla iPhone 5, gdy zapytałem o granice rozmiaru ekranu tak:
CGSize screenSize = [[UIScreen mainScreen] bounds].size;
Kiedy naprawiłem te obrazy, ten problem został rozwiązany.
P. S-powinno działać niezależnie od tego, czy używasz katalogu zasobów, czy pliku nib dla obrazu startowego. W katalogu zasobów należy dodać "V" po prawej stronie (atrybuty IOS 8 i nowsze, i ustawić obrazy dla "Retina HD 5.5 "(dla 6 plus) i " Retina HD 4.7 " (dla iPhone 6)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-16 15:39:07
Wygląda na to, że @anon i @PJC mają rację i to jest błąd UIKit. Czasami może być wykonywana przez [view.layer renderInContext:UIGraphicsGetCurrentContext()]
W tym momencie Sam rozwiązałem problem, ręcznie dostosowując układy dla iPhone 6/6+, ponieważ w natywnych rozwiązaniach urządzenia problem się nie powtarza.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-01 10:57:36