gpt4 book ai didi

ios - UITextView 对齐文本垂直居中

转载 作者:可可西里 更新时间:2023-11-01 03:24:16 25 4
gpt4 key购买 nike

我想在 UItextView 中垂直居中对齐文本。

我正在使用以下代码

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}

;

这在 iOS 5 中不起作用,因为返回的 contentSize 与我在 iOS6 中得到的不同。

知道为什么相同 textView 的 contentSize 在 iOS 5 和 iOS 6 中不同吗?

最佳答案

在加载 View 时为 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};
}

希望对你有帮助...

你可以从中获取指导​​

https://github.com/HansPinckaers/GrowingTextView

关于ios - UITextView 对齐文本垂直居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17024375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com