2015-09-17 89 views
4

我有一個UITextView在用戶設置關注時獲得來自用戶的數字輸入UITextView然後textview中的文本向上。我想將其設置爲水平居中。任何人都可以幫忙嗎?iOS中的UITextView文本對齊

enter image description here

+0

textView.textAlignment = NSTextAlignment.Center //迅速 – Jamil

+0

@ jamil65able將水平居中。這個問題要求垂直居中。 –

+0

@ jamil65able此代碼無法使用。你可以從上面的圖片中獲得想法。 –

回答

0

這將是一個有點棘手修復。你需要觀察你UITextViewcontentSize屬性,然後調整其contentSize & contentOffset這樣的:

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

- (void)observeValueForKeyPath:(NSString *)iKeyPath ofObject:(id)iObject change:(NSDictionary *)iChange context:(void *)iContext { 
    UITextView *myTextView = (UITextView *)iObject; 
    CGFloat topCorrect = (myTextView.bounds.size.height - [myTextView contentSize].height * [myTextView zoomScale])/2.0; 
    topCorrect = (topCorrect < 0.0 ? 0.0 : topCorrect); 
    myTextView.contentOffset = (CGPoint){.x = 0, .y = -topCorrect}; 
}