我想把文本vertically放在一个填满整个屏幕的大UITextView
中,这样当文本很少的时候,比如说几个词,它就会按高度居中.
这不是关于将文本居中(可以在IB中找到的属性)的问题,而是关于将文本vertically放在UITextView
中间的问题.由于文本很短,所以UITextView
中没有空白区域.
这是可以做到的吗?提前谢谢!
我想把文本vertically放在一个填满整个屏幕的大UITextView
中,这样当文本很少的时候,比如说几个词,它就会按高度居中.
这不是关于将文本居中(可以在IB中找到的属性)的问题,而是关于将文本vertically放在UITextView
中间的问题.由于文本很短,所以UITextView
中没有空白区域.
这是可以做到的吗?提前谢谢!
加载视图时,首先为UITextView
的contentSize
键值添加观察者:
- (void) viewDidLoad {
[textField addObserver:self forKeyPath:@"contentSize" options:(NSKeyValueObservingOptionNew) context:NULL];
[super viewDidLoad];
}
然后添加此方法,以便在每次contentSize
值更改时调整contentOffset
:
-(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};
}