Verschieben von Ansichten mit Einschränkungen

Habe ich ein paar Ansichten aus meiner Sicht-controller, die sich bewegen, wenn ein up streichen Sie erkannt wird, dann nach unten, wenn eine nach unten streichen erkannt wird. Ich Zwang den Blick zu bewegen, durch die Anpassung der y-Ursprung mit CGRectOffset. Ich habe jetzt angewendet Einschränkungen, um meine Ansichten mit IB und ich bin mir nicht sicher, was ist der beste Weg, um sich die Ansichten so, dass Sie am Ende in der richtigen position auf das iphone 5, 6, und 6+.

Zurzeit mache ich so etwas wie dieses:

[self.view layoutIfNeeded];

    self.panFrameVerticalConstraint.constant = self.panFrameVerticalConstraint.constant +338;

    [UIView animateWithDuration:5
                     animations:^{
                         [self.view layoutIfNeeded];
                     }];

Ist es besser, ändern Sie die Konstanten mithilfe der Verhältnisse? Also für die Einschränkung vor, anstelle der Verwendung von 338, wäre es besser, dies zu tun:

    self.panFrameVerticalConstraint.constant = self.panFrameVerticalConstraint.constant + (self.panView.frame.size.height/1.680);

    //self.panView.frame.size.height = 568
    //(568/1.680) = 338
  • Werfen Sie einen Blick auf diese - stackoverflow.com/questions/26667006/...
  • darf ich Fragen, wie Sie umgesetzt streichen Sie nach oben/unten-gesten zu bewegen, Ihre Ansichten? Ich bin versucht, etwas ähnliches tun, aber nicht wissen, wo zu beginnen. Dank
  • Ich habe es ziemlich genau die Schritte in der Antwort unten. Ich habe eine IBOutlet NSLayoutConstraint Eigenschaft angeschlossen und es um die Einschränkung wollte ich einstellen im interface builder. Dann, wenn ich brauchte, um meine Sicht, ich änderte meine Konstante, wie dies self.panFrameVerticalConstraint.constant = -(self.panedView.frame.size.height/1.68);. Ich rief layoutIfNeeded vor dem Wechsel die Konstante. Nach änderung der Konstanten, die ich genannt animateWithDuration und rief layoutIfNeeded wieder in den block, wie die Antwort unten.
  • Ich entschuldige mich, ich bin immer noch lernen, aber wie hast du erkannt das wischen nach oben von der UIView Sie nach oben verschieben möchten, um die animation?
  • In viewDidLoad müssen Sie einen UISwipeGestureRecognizer und die Methode, die aufgerufen wird, wenn ein swipe erkannt wird. UISwipeGestureRecognizer * swipeUpRec = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleUpSwipe:)]; Fügen Sie dann die gestik-Erkennung, um was auch immer Rahmen ist wohl zu erkennen, das streichen [self.someView addGestureRecognizer:swipeUpRec];
  • ich danke Euch so sehr für Eure Geduld und Hilfe! Merry xmas 🙂

InformationsquelleAutor Brosef | 2014-12-11
Schreibe einen Kommentar