Wie richtet man Text horizontal & vertikal in UITextView aus? Ich möchte Text in UITextView mit horizontaler Ausrichtung ausrichten & vertikale Ausrichtung. Gibt es einen benutzerdefinierten Weg? Bitte helfen Sie mir .....Wie richtet man Text in UITextView horizontal und vertikal aus?
Antwort
Soweit ich weiß, gibt es keine eingebaute Methode für die vertikale Ausrichtung eines UITextView
. Doch durch die die contentOffset
aktualisieren Sie vertikal zentriert Text erhalten können:
[textView setTextAlignment:NSTextAlignmentCenter];
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[textView addObserver:self forKeyPath:@"contentSize" options:(NSKeyValueObservingOptionNew) context:NULL];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[textView removeObserver:self forKeyPath:@"contentSize"];
}
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
UITextView *tv = object;
CGFloat topCorrect = ([tv bounds].size.height - [tv contentSize].height * [tv zoomScale])/2.0;
topCorrect = (topCorrect < 0.0 ? 0.0 : topCorrect);
tv.contentOffset = (CGPoint){.x = 0, .y = -topCorrect};
}
Sie den Kontext zur Verfügung stellen sollte, was meinen Sie tun, wenn Sie die horizontale und vertikale Ausrichtung ändern möchten,
Die UITextView hat ein Container und eine Rahmeneigenschaft, die Sie mit einem anderen UITextview/Imageview usw. ausrichten können. Die Rahmeneigenschaft hat einen Ursprung und eine Größe, die Sie ändern können, um Ihre Ansichten auszurichten.
Der Text in der UITextview hat eine Eigenschaft namens textalignment, die Sie auf NSTextAlignmentLeft, NSTextAlignmentJustified setzen können. Wie vorgeschlagen, können Sie auch die content offset-Eigenschaft des Containers anpassen, aber ich finde, dass die Anpassung des Frames einfacher ist.
self.qtyField.textAlignment = NSTextAlignmentCenter;
vertikal ausrichten Mitte mit Swift:
In viewDidLoad:
textField.addObserver(self, forKeyPath: "contentSize", options: NSKeyValueObservingOptions.New, context: nil)
woanders Dann in Ihrem View-Controller:
override func observeValueForKeyPath(keyPath: String, ofObject object: AnyObject, change: [NSObject : AnyObject], context: UnsafeMutablePointer<Void>) {
var topCorrect : CGFloat = (textField.frame.height - textField.contentSize.height);
topCorrect = topCorrect < 0.0 ? 0.0 : topCorrect/2
textField.contentOffset = CGPoint(x: 0, y: -topCorrect)
}
wo textfield verdrahtet ist auf die tatsächliche up Textfeld in Ihrer Sicht.
das richtig funktioniert, aber irgendwie funktioniert es nicht mit einem Abwicklungssegment ... irgendeine Idee warum? – SKYnine
Dies ist eine Swift-Lösung und unterscheidet sich nun, da sich Inhaltseinfügungen und Offsets leicht geändert haben. Diese Lösung funktioniert in Xcode 7 Beta 6.
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
textView.addObserver(self, forKeyPath: "contentSize", options: NSKeyValueObservingOptions.New, context: nil)
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
textView.removeObserver(self, forKeyPath: "contentSize")
}
Apple hat verändert, wie Content-Offsets und -einsätze arbeiten diese leicht modifizierte Lösung nun die oben auf den Inhalt Einsatz anstelle des Offset erforderlich einzustellen.
/// Force the text in a UITextView to always center itself.
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
let textView = object as! UITextView
var topCorrect = (textView.bounds.size.height - textView.contentSize.height * textView.zoomScale)/2
topCorrect = topCorrect < 0.0 ? 0.0 : topCorrect;
textView.contentInset.top = topCorrect
}
Das hat bei IOS 9/Swift 2 super funktioniert, danke! – Kitson
Ehrfürchtig .. arbeitete für mich. verschwendete fast 2 Stunden. –
Danke, arbeitete für mich gespeichert meine Zeit –
- 1. Wie richtet man Text in UITextView vertikal aus?
- 2. Zentrieren Sie den Text in einem UITextView, vertikal und horizontal
- 3. Wie man Text vertikal und horizontal zentriert in Highchart Mass
- 4. Zentrieren Text horizontal und vertikal in LaTeX
- 5. UITextView alligine Text vertikal zentrieren
- 6. Center Text vertikal und horizontal mit Leinwand
- 7. Wie richtet man diesen Text neben einer Schaltfläche aus?
- 8. Highcharts yAxis Titel richtet sich horizontal statt vertikal (Standardverhalten)
- 9. Text in einer unregelmäßigen Form vertikal zentrieren UITextView
- 10. CSS: Wie Text vertikal zentriert und horizontal über ein Bild
- 11. Wie richtet man Text/Steuerelemente in der Datatable-Spalte aus?
- 12. Ionic Center Text vertikal und horizontal auf dem Bildschirm
- 13. HTML-CSS-Center Text horizontal und vertikal in einem Link
- 14. Horizontal und vertikal ViewPager zusammen
- 15. Wie richtet man diesen Bootstrap-Radioknopf aus?
- 16. Wie richtet man den von SpriteBatch.DrawString gezeichneten Text aus?
- 17. Wiederholen Bild horizontal und vertikal
- 18. Scrollen UITableView horizontal und vertikal
- 19. Wie lässt man WPF WebBrowser horizontal und vertikal wachsen?
- 20. Warum richtet mein Stackpanel seine Steuerelemente vertikal aus, wenn die Ausrichtung auf horizontal eingestellt ist?
- 21. Wie Bild horizontal und vertikal mit PHP
- 22. Wie richtet man UILabel Text von unten?
- 23. Wie richtet man Inhalt in einem DataTemplate richtig aus?
- 24. Wie zentriert man ein Bild horizontal und richtet es auf den Boden des Behälters aus?
- 25. Wie richtet man ein HTML-Element vertikal in der Mitte aus?
- 26. vertikal/horizontal Mittelblock Ebenenelemente
- 27. Wie richtet man TextView und EditText programmgesteuert horizontal auf das horizontale LinearLayout aus?
- 28. Drucken/Schreiben horizontal/vertikal
- 29. Aligning Matrizen sowohl vertikal als auch horizontal in LaTeX
- 30. Wie richtet man den linken DL-Inhalt aus?
Wohin geht dieser Code? (ViewController.m?) – Cindeselia
@Cindeselia Die Art und Weise, wie der Code derzeit geschrieben wird, müssten Sie dort hinzufügen, wo sich Ihre Textansicht befindet. – Gad
Beachten Sie, dass das Ändern von contentOffset nur zu funktionieren scheint, wenn das Flag "Auswählbar" der Textansicht aktiviert ist – Maiaux