iPhone + CGAffineTransFormRotate(pi/2) + statusBarHidden:OUI + presentModalViewController = 20 pixels de l'espace blanc
Je pense que le titre est assez descriptif:
J'ai effectuer tous les 3 de ces opérations sur la vue, le résultat est de 20 pixels de l'espace blanc sur le côté gauche de l'écran (si l'iPhone est landscapeLeft).
J'ai essayé d'y remédier en effectuant une CGAffineTransFormTranslate(transformer, -20, 0)
Qui vient de "slides" de la vue de dessous de l'espace.
C'est de commencer à se sentir comme un bug, quelqu'un d'autre a ce problème?
Pour être clair, je ne suis pas la rotation de tout point de vue. Je suis détection de l'orientation de l'appareil:
[[UIDevice currentDevice] orientation]
Et si l'appareil (pas l'interface) est, dans le paysage, puis:
[navigationController presentModalViewController:NewView animated:NO]
La transformation est de faire tourner mon point de vue (créé en IB) pour le paysage, avant de l'afficher.
Transformer mon code:
CGRect myFrame = CGRectMake(0, 0, 480, 320);
CGAffineTransform transform = [[self.myPeriodicTableViewController view] transform];
transform = CGAffineTransformRotate(transform, degreesToRadians(rotationDirection * 90));
transform = CGAffineTransformTranslate(transform, -20, 0);
[[self.myPeriodicTableViewController view] setFrame: myFrame];
CGPoint center = CGPointMake(myFrame.size.height/2.0, myFrame.size.width/2.0);
[[self.myPeriodicTableViewController view] setTransform: transform];
[[self.myPeriodicTableViewController view] setCenter: center];
OriginalL'auteur Corey Floyd | 2009-02-19
Vous devez vous connecter pour publier un commentaire.
Je pense que vous pouvez avoir besoin de recentrer votre centre:
C'est l'ensemble de la méthode init-je utiliser pour les paysages et fonctionne sans problème. Assurez-vous de configurer votre plume à la bonne taille aussi.
Je viens de vérifier ma taille de PLUME, et la largeur était que de 300, a tellement changé qu'il 320. Le problème persiste encore.
Aussi mon transformer le code est dans mon délégué d'Application, et est exécutée après la poussée. si je le fais dans le viewDidLoad, j'obtiens des résultats bizarres
Au lieu de (M_PI / 2.0) utilisation M_PI_2
OriginalL'auteur Alex Wayne
Ok, j'ai tout compris. Comme d'habitude c'est le résultat de plus de 1 question. Ces problèmes se produisent avant, j'ai même pousser le modal vue:
Tout d'abord, Dans mon code j'ai été le redimensionnement de mon point de vue comme suit:
Après vous masquer la barre d'état, applicationFrame renvoie TOUJOURS un 320x460 rect (pas 320x480).
Je ne sais pas pourquoi, mais les corrections suivantes, c':
Il obtient la totalité de l'écran qui j'ai levé à partir de:
Plein écran UIView avec barre d'État et la Barre de Navigation overlay sur le dessus
Seconde, et dans la même ligne de code, je ne suis pas en train de le corriger viewController. Depuis que je suis dans une Navigation en Fonction de l'application, je dois parler à la NavigationController. Si pas, la Barre de Navigation n'est jamais le message à déplacer vers le haut de l'écran afin de couvrir l'espace laissé par la barre d'état (qui a abouti à mon espace blanc). Alors un de plus la correction de cette ligne de code:
Enfin, après tout cela, je peux pousser mon modal voir avec la confiance.
OriginalL'auteur Corey Floyd
Aucun de ceux qui travaillent pour moi. Ce N'travail était le suivant:
J'ai déclaré un (global) de la variable dans mon ViewController.h fichier
et dans mon ViewController.m à ma méthode viewDidLoad je l'initialiser comme ceci:
ensuite, le fait de rejeter le sélecteur, j'utilise
OriginalL'auteur Gik