我试图通过适当设置内容偏移来垂直对齐UITextView。
我在更改textView的文本时调用以下代码:
- (void)setCenterVerticalAlignmentForTextView:(UITextView*)textView {
CGFloat topCorrect = ([textView bounds].size.height - [textView contentSize].height * [textView zoomScale])/2.0;
topCorrect = (topCorrect < 0.0 ? 0.0 : topCorrect );
textView.contentOffset = CGPointMake(0,-topCorrect);
}
第一次在屏幕上显示UIView时,这非常有效。
但是,如果我更改textView中的文本并再次调用此函数,则设置contentOffset的函数的最后一行似乎没有任何区别。无论我设置什么,内容偏移都会变为(0,0)。
在尝试重置之前,是否需要执行某些操作来重置contentOffset或contentInset?
谢谢大家,非常感谢。
Duncs
答案 0 :(得分:0)
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;
使用此deligate,如果textview中发生任何文本更改,则会调用该
答案 1 :(得分:0)
This answer真的帮助了我。它不漂亮,但它有效!首先通过设置0,0重置。
CGPoint offset = CGPointMake(0, self.textView.contentSize.height -
self.textView.frame.size.height);
[self.textView setContentOffset: CGPointMake(0,0) animated:NO];
[self.textView setContentOffset:bottomOffset animated:YES];