我想将文本垂直居中放置在UITextView
可填充整个屏幕的大文本内部-这样,当文本很少时,说几个单词,它就以高度为中心。这不是关于文本居中(在IB中可以找到的属性)的问题,而是关于如果文本较短则将文本垂直居中放置的问题,因此。能做到吗?提前致谢!UITextView
UITextView
首先,为视图加载时的contentSize
键值添加观察者UITextView
:
- (void) viewDidLoad {
[textField addObserver:self forKeyPath:@"contentSize" options:(NSKeyValueObservingOptionNew) context:NULL];
[super viewDidLoad];
}
然后添加此方法以在contentOffset
每次contentSize
值更改时进行调整:
-(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};
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句