Okay donc j'ai une application très basique avec une vue en un seul bouton. J'ai le contrôleur réglé pour autoriser seulement le paysage. Mon problème est qu'après qu'il est initialisé, puis je clique sur mon bouton (qui a seulement une déclaration de journal), est différent des déclarations de journal que j'ai à la fin de mon init.iPad cadre uiview change juste après initWithFrame
Je démarre l'application en mode paysage sur mon simulateur (même résultat sur l'appareil). C'est comme si je l'ai assigné, il revient juste en arrière. J'ai essayé cette déclaration self.frame = CGRectMake(0, 0, 1024, 768);
dans ma méthode buttonClicked, mais cela juste déformé et déplacé.
- (id)initWithFrame:(CGRect)frame
{
if ((self = [super initWithFrame:frame]))
{
//BUTTONS
attributesButton = [UIButton buttonWithType:UIButtonTypeCustom];
attributesButton.frame = CGRectMake(self.frame.size.width - buttonPadding - 35, self.frame.size.height/2 -22 -150, 35, 35);
[attributesButton setBackgroundImage:[UIImage imageNamed:@"loadIcon.png"] forState:UIControlStateNormal];
[attributesButton addTarget:self action:@selector(attributesButtonClicked)
forControlEvents:UIControlEventTouchUpInside];
[attributesButton setTitle:@"Attr" forState:UIControlStateNormal];
[self addSubview:attributesButton];
NSLog(@"Width: %f",self.frame.size.width);
NSLog(@"Height: %f",self.frame.size.height);
}
return self;
}
-(void)attributesButtonClicked
{
NSLog(@"Width: %f",self.frame.size.width);
NSLog(@"Height: %f",self.frame.size.height);
}
Donc c'est mon init. Désolé, il semble si terrible je ne sais pas pourquoi. Mon contrôleur de vue:
- (void)loadView
{
NSLog(@"myViewController: loadView");
myView = [[myView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)];
self.view = myView;
}
Maintenant, c'est la partie qui me donne, les déclarations de journal.
2010-08-27 15:16:55.242 tester[8703:40b] myViewController: loadView
2010-08-27 15:16:55.262 tester[8703:40b] Width: 1024.000000
2010-08-27 15:16:55.262 tester[8703:40b] Height: 768.000000
CLICK MY BUTTON HERE
2010-08-27 15:17:05.689 tester[8703:40b] Width: 748.000000
2010-08-27 15:17:05.689 tester[8703:40b] Height: 1024.000000
Ma vue n'est pas liée à et des contrôleurs standard. Just: @interface myViewController: UIViewController –
Il n'est pas nécessaire de lier directement un contrôleur de vue standard. Votre "myViewController" est probablement utilisé dans un UINavigationController ou UITabBarController. Cela vous donnera le même comportement –