2016-07-11 46 views
0

Ich habe ein seltsames Problem mit UIButton s in einem UIView. Die Ansicht wird gezwungen zunächst auf eine Höhe von 0, und ich bin Animieren der Einschränkung mitUIButton Schriftgröße Problem in UIView Animation

UIView.animateWithDuration(0.6, delay: 0, options: UIViewAnimationOptions.CurveEaseInOut, animations: { 

     heightConstraint!.constant = height 
     self.view.layoutIfNeeded() 

    }) { (finished) in 

    } 

Das funktioniert wirklich gut, mit allen Inhalten der animierten Ansicht wie erwartet Erschienenen, abgesehen von irgendwelchen UIButtons, die angeordnet sind, Innerhalb.

Die Schriftgröße titleLabel wird von 0 auf die korrekte Größe während der Animation erhöht. Diese Knöpfe haben nichts besonderes. Sie sind auf Systemschriftart 18 eingestellt und relativ zur Superansicht positioniert. Die Schaltflächenrahmen sind korrekt, es ist nur die Schriftgröße, die sich ändert.

Ich habe versucht, explizit adjustsFontSizeToFitWidth und contentMode Einstellung, aber diese haben keine Wirkung. Interessanterweise, wenn ich der Ansicht einen einfachen UILabel hinzufüge, funktioniert das gut.

Irgendwelche Vorschläge, was vor sich geht?

Antwort

0

Versuchen mit clipsToBounds = true, versteckt Text innerhalb der Schaltfläche

Wenn Höhe 0 oder 1 ist, ist myView

enter image description here

und clipsToBounds = true nach der Einstellung, es ist wie diese

enter image description here

Hinweis Border = 1 und height = 1 soll hier nur dargestellt werden. Auch ich bekomme dieses seltsame Problem. Aber der Text nicht angezeigt, nachdem die Grenzen zu wahren

Einstellung
+0

Kein Effekt Ich habe Angst! – Graham

+0

Dies muss ein Apple-Bug mit Xcode7.3.1 sein Ich denke –

+0

Sie können das Problem auf Apple-Forum –

1

ich es geschafft habe, das Problem zu vermeiden, indem sie ausdrücklich die Höhe auf einen Wert ungleich Null, bevor die Animation Einstellung:

constraint.constant = 1 
self.view.layoutIfNeeded() 
self.view.setNeedsUpdateContraints() 

// do animation 

das Problem dadurch behoben obwohl es sich anfühlt wie ein Hack um etwas, was ich nicht richtig mache.

+0

Es ist in Ordnung, wenn Sie vor der Einrichtung der Animation und der Constraint nur self.view.layoutIfNeeded() aufrufen. –