2011-09-14 23 views
5

Tôi gặp sự cố trong thiết kế ứng dụng của mình. Tôi muốn thiết lập thẳng đứng giữa của UITextView của tôi. Vui lòng giúp tôi cách đặt căn chỉnh thẳng đứng của uitextview từ trình tạo giao diện.cách đặt căn chỉnh dọc của uitextview từ trình tạo giao diện

+0

ý bạn là gì theo căn dọc. Bạn có muốn văn bản của mình trong trường văn bản nên ở chính giữa hay không. – Gypsa

+0

Tôi muốn hiển thị văn bản của mình ở giữa chế độ xem văn bản –

+0

Và cũng có phần đệm trong uitextview, tôi muốn xóa nó –

Trả lời

7

Làm việc này bằng cách quan sát các thay đổi đối với thuộc tính contentSize và sau đó đặt 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

Tính năng này hoạt động tốt cho iOS 6, nhưng dường như không hoạt động cho iOS 5. UITextView dường như hoạt động khác nhau. :( – Daren

+0

hoạt động tốt trên ios8 nhưng cũng cần xóa người quan sát sau khi căn chỉnh xong. Thêm dòng này làm dòng cuối cùng của phương thức 'observValueForKeyPath':' [tv removeObserver: self forKeyPath: @ "contentSize"]; ' –

-1
*yourtextviewname*.textAlignment=UITextAlignmentCenter; 

Bạn có thể thực hiện việc này bằng trình tạo giao diện.Mở thuộc tính của trường văn bản và văn bản đặt Căn chỉnh ở giữa.

+2

Xin lỗi, điều đó không có ý nghĩa của tôi, tôi đang sử dụng UITextView và muốn đặt căn chỉnh dọc như trên, giữa, đáy. Hy vọng điều này có ý nghĩa. –

Các vấn đề liên quan