Scrollen von UILabel wie ein Auswahlrechteck in einer Unteransicht

Ich habe ein UILabel in der Hauptansicht mit Text -"Sehr sehr langer Text". Die richtige Breite dafür wäre 142, aber ich habe es auf 55 gekürzt.

Grundsätzlich möchte ich einen Laufschrifttyp implementieren, also habe ich Code geschrieben, um ihn einer Unteransicht hinzuzufügen und ihn innerhalb der Grenzen dieser Ansicht zu animieren.

CODE -

    CGRect tempLblFrame = _lblLongText.frame;
    UIView *lblView = [[UIView alloc] initWithFrame:tempLblFrame];

    //Add label to UIView at 0,0 wrt to new UIView
    tempLblFrame.origin.x = 0;
    tempLblFrame.origin.y = 0;

    [_lblLongText setFrame:tempLblFrame];
    [_lblLongText removeFromSuperview];
    [lblView addSubview:_lblLongText];

    //SetClipToBounds so that if label moves out of bounds of its superview, it wont be displayed
    [lblView setClipsToBounds:YES];
    [lblView setBackgroundColor:[UIColor cyanColor]];
    [self.view addSubview:lblView];

Danach bekomme ich diese Ausgabe auf den Simulator ->

Das Problem tritt auf, wenn ich die Animation mit diesem Code versuche -

    tempLblFrame.origin.x = -_lblLongText.intrinsicContentSize.width;        
    [UIView animateWithDuration:2.0 delay:1.0 options:UIViewAnimationOptionCurveLinear
                     animations:^{
                         [_lblLongText setFrame:tempLblFrame];
                     }
                     completion:^(BOOL finished) {
                         NSLog(@"completed");
                     }];

Ich hatte gehofft, ich würde den gesamten "Very Very long text" sehen, sondern nur "Very ..." von links nach rechts scrollen.

Um dies zu lösen Ich habe eine Codezeile hinzugefügt -

    //Add label to UIView at 0,0 wrt to new UIView
    tempLblFrame.origin.x = 0;
    tempLblFrame.origin.y = 0;

    tempLblFrame.size.width = _lblLongText.intrinsicContentSize.width; //THIS LINE WAS ADDED

    [_lblLongText setFrame:tempLblFrame];
    [_lblLongText removeFromSuperview];
    [lblView addSubview:_lblLongText];

Ich dachte, dass der vollständige Text innerhalb des neu hinzugefügten UIView gesetzt wird und es richtig scrollen würde. Aber das Laufen im Simulator hat mir folgendes gebracht:

Und wieder scrollte nur "Sehr ..." von links nach rechts.

Was mache ich falsch? Bitte helfen Sie!

BEARBEITEN

Anscheinend war der Täter AutoLayout.

Ich habe keine Ahnung warum, aber als ich "Use Autolayout" für die Ansicht im XIB deaktiviert habe, hat alles wie erwartet funktioniert. Festlegen von tempLblFrame.origin.x = -_lblLongText.intrinsicContentSize.width; funktionierte einwandfrei und so war die Schriftrolle.

Irgendeine Erklärung dazu !!?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage