Ich aktualisiere meine App, um Dynamic Type in iOS 7 zu unterstützen. Es war relativ einfach, den Text abhängig von der Systemeinstellung seine Größe anzupassen, aber wie ich es im Kontext eines UITableView und Zellen mit mehreren verwenden UILabels in ihnen, Textgröße ist nicht die einzige Sache, über die ich mich sorgen muss. Wenn der Text wächst, sollte auch die Höhe der Zelle sein, wenn der Text kleiner wird, sollte es auch die Zellenhöhe sein.Wie kann ich bei Dynamic Type in iOS 7 erweiterte Layoutprobleme berücksichtigen, z. B. den Abstand zwischen Labels/Ansichten?
Auch wenn es kleiner wird, sollte es offensichtlich weniger Abstand zwischen den Elementen im Vergleich zu seiner größten Größe (wie bei einer kleinen Größe die Zwischenräume zwischen Riese wäre).
Wie ändere ich erweiterte Layoutprobleme wie diese, wenn der Benutzer die Größe des dynamischen Typs ändert?
Im Moment mache ich etwas wirklich hässliches, das kaum funktioniert. Ich betrachte die Höhe eines meiner Labels und skaliere meine Konstanten mit ihrer Größe. Aber es ist sehr ungenau, da 110% einer UILabel-Höhe bei der aktuellen Textgröße, die als das Padding zwischen Elementen verwendet wird, nicht notwendigerweise universell arbeiten werden.
Also hier ist, was ich in diesem Beispiel zu tun.
CGRect articleTitleRect = [article.title boundingRectWithSize:CGSizeMake(CGRectGetWidth(self.contentView.bounds) - 29, MAXFLOAT)
options:NSStringDrawingUsesFontLeading
attributes:@{ NSFontAttributeName: [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline] }
context:nil];
self.urlConstant.constant = articleTitleRect.size.height/5;
self.previewConstant.constant = articleTitleRect.size.height/5;
(Im Grunde genommen um herauszufinden, was die Höhe eines Etiketts wird, dann Prozentsatz, die mit dem Abstand zu schließen, wieder sehr ungenau und doesn 't funktionieren gut universell.)
Die andere Sache, die ich in Betracht gezogen habe, war zu überprüfen, was der aktuelle ist gleich bei einer Punktgröße, und für bestimmte Werte hardcode die Schnittstelle Anpassungen/Abstand. Das funktioniert ein wenig besser, aber es scheint immer noch nicht optimal zu sein, was Apple vorhatte, da es nicht besonders dynamisch ist (es bricht, wenn es beispielsweise eine andere Schriftgröße hinzufügt) und du schnüffelst fast nach Werten, die sie nicht haben. t geben Sie aus der Fledermaus (was es scheint hacky).
Also, was tun Anwendungen wie Tweetbot 3 (das jetzt dynamische Art verwenden, um ihre UITableViewCell Elemente eingestellt) tun, um ihre UI so gut gemacht über verschiedene dynamische Typ Größen aussehen? Was ist der beste Weg, dies zu tun? Es scheint ehrlich gesagt keine Tutorials zu diesem Thema zu geben.
Können Sie einige Screenshots zeigen, wie Tweetbot 3 den Abstand zwischen Textelementen in Abhängigkeit vom dynamischen Typ ändert? –