我添加了一个UITextView
,当它开始编辑时,它不是从第一行开始,而是从第二行开始。有人知道吗?谢谢!
PS 即使我还没有实现任何代码,这个问题仍然存在。
我添加了一个UITextView
,当它开始编辑时,它不是从第一行开始,而是从第二行开始。有人知道吗?谢谢!
PS 即使我还没有实现任何代码,这个问题仍然存在。
in the viewDidLoad method add
object-c:
self.automaticallyAdjustsScrollViewInsets = NO
swift:
self.automaticallyAdjustsScrollViewInsets = false
当您在 UINavigationController 中添加时,textView 被扩展布局属性下推。
尝试放入您的 ViewDidLoad 方法
[self setEdgesForExtendedLayout:UIRectEdgeNone];
对于顶部的输入/开始文本,UITextView
您需要设置contentInset
如下
self.yourTextViewName.contentInset = UIEdgeInsetsMake(2.0,1.0,0,0.0); // set value as per your requirement.
一般contentInset
用于设置内容视图和封闭之间的插入距离UITextView
。
你也可以通过绑定来做同样的事情。请参阅下面的屏幕截图:-
在控件内部 -> 对齐选择第一个选项,如上: -
然后这是上面的输出:-
You can do this by this way also
- (void) viewDidLoad {
[textField addObserver:self forKeyPath:@"contentSize" options:(NSKeyValueObservingOptionNew) context:NULL];
[super viewDidLoad];
}
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
UITextView *tv = object;
//Center vertical alignment
//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};
//Bottom vertical alignment
CGFloat topCorrect = ([tv bounds].size.height - [tv contentSize].height);
topCorrect = (topCorrect <0.0 ? 0.0 : topCorrect);
tv.contentOffset = (CGPoint){.x = 0, .y = -topCorrect};
}