如何在界面生成器中设置UITextView的垂直对齐方式

5

我的应用程序设计中有一个问题。我希望将UITextView的垂直对齐设置为中间。请告诉我如何从界面构建器中设置UITextView的垂直对齐。


垂直对齐是什么意思?您希望文本字段中的文本居中显示吗? - Gypsa
我想把我的文本显示在TextView的中间 - Shivomkara Chaturvedi
还有在UITextView中,有一个内边距,我想把它去掉。 - Shivomkara Chaturvedi
2个回答

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
在iOS8上运行良好,但对齐完成后还需要删除观察器。将此行添加为“observeValueForKeyPath”方法的最后一行:[tv removeObserver:self forKeyPath:@"contentSize"]; - Vaibhav Saran

-1
*yourtextviewname*.textAlignment=UITextAlignmentCenter;

你可以通过界面构建器来实现这一点。打开文本字段的属性,将文本对齐方式设置为居中。

2
抱歉,那不是我的意思,我正在使用UITextView,并希望设置垂直对齐方式,例如顶部、中部、底部。希望这样说清楚了。 - Shivomkara Chaturvedi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接