2010-12-01 9 views
0

ich mit bewegten Blick etwas Mühe habe:Positionierungsrahmen funktioniert nicht nach dem Umzug in iOS 4.2

- (void)viewDidLoad { 

    CGRect newFrame = self.popUp.view.frame; 
    newFrame.origin.y = self.view.bounds.size.height; 
    self.popUp.view.frame = newFrame; 

    [[self view] addSubview:[self.popUp view]]; 

    [super viewDidLoad]; 
} 

Das die subview popUp unter dem aktuellen Bildschirm setzen sollte, aber es scheint nicht, es sich zu bewegen . Ich bin fast sicher, dass das vor 4.2 funktionierte. Irgendwelche Ideen, was passieren könnte? Entschuldigung für die Ungenauigkeit. Wenn Sie irgendwelche Fragen haben, zögern Sie nicht zu fragen.

Antwort

0

Haben Sie versucht, [super viewDidLoad] an die Spitze der Methode zu verschieben? Wenn Sie die Methode einer Superklasse aufrufen, kann sich dies auf den Status der ererbten Variablen auswirken.

Gut Beitrag dazu: `[super viewDidLoad]` convention

+0

Hmm, hat den Trick nicht gemacht. Danke für den Link. Gute Info. – emachine

0

Es sieht aus wie Sie, so dass die Spitze der popUp.view bewegen ist am unteren Rand des self.view. Und wenn Sie popUp.view zu self.view hinzufügen, platzieren Sie es "außerhalb" von self.view. Sie können dies überprüfen, indem Sie newFrame.origin.y = self.view.bounds.size.height - 100; und sehen, ob es angezeigt wird.

Ein Grund, warum Ihre Ansicht nicht wie zuvor angezeigt wird, könnte sein, dass Sie clipsToBounds geändert haben. Ich kann mir vorstellen, dass es auch eine andere Zeichnungsoptimierung sein kann, die nicht drawt und nicht sichtbar ist.

Wenn Sie Ihren Pop wollen Sie sich unten eine Ansicht zu zeigen, bis ich denke, ein besserer Ansatz entweder Ihren Pop an der Unterseite der Ansicht sein, würde zu platzieren:

newFrame.origin.y = self.view.bounds.size.height - newFrame.size.height; 

oder durch den Pop-up-Platzierung Blick in der Superansicht von self.view. In diesem Fall würden Sie wahrscheinlich das Erscheinen im Controller der Superview behandeln wollen.

Verwandte Themen