2011-09-14 54 views
5

我在應用程序設計中遇到問題。我想設置垂直對齊我的UITextView的中間。 請幫助我如何設置界面生成器的uitextview垂直對齊。如何從界面生成器設置uitextview的垂直對齊

+0

你是什麼意思的垂直align.Do你wnat你的文本在文本字段應居中。 – Gypsa

+0

我想在textview的中間顯示我的文本 –

+0

而且在uitextview中還有一個填充,我想將其刪除 –

回答

7

通過觀察對contentSize屬性所做的更改並設置contentOffset來實現此目的。

- (void)viewDidLoad{ 
    [super viewDidLoad]; 
    [myTextView addObserver:self forKeyPath:@"contentSize" options:(NSKeyValueObservingOptionNew) context:nil]; 
} 

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { 
    UITextView *myView = object; 

    CGFloat offSet = ([myView bounds].size.height - [myView contentSize].height * [myView zoomScale])/2.0; 
    offSet = offSet < 0.0 ? 0.0 : offSet; 
    [myView setContentOffset:CGPointMake(0, -offSet) animated:NO]; 
} 
+1

這適用於iOS 6,但似乎不適用於iOS 5. UITextView似乎行爲不同。 :( – Daren

+0

在ios8上運行良好,但也需要在對齊完成後刪除觀察者。將此行添加爲'observeValueForKeyPath'方法的最後一行:'[tv removeObserver:self forKeyPath:@「contentSize」]; –

-1
*yourtextviewname*.textAlignment=UITextAlignmentCenter; 

您可以通過界面生成器來完成此操作。打開文本字段的屬性並設置文本與居中對齊。

+2

對不起,這不是我的意思,我使用UITextView並且想要設置垂直對齊,例如頂部,中部,底部。 希望這是有道理的。 –