IOS之导航栏中添加UITextView控件bug

今天遇到一个奇怪的问题,如下:

在导航栏控制器的rootviewcontroller中,添加了一个UITextView控件,代码如下:

- (void)viewDidLoad {

    [super viewDidLoad];

    self.title =@"Test";

    UITextView *textview = [[UITextViewalloc]init];

    textview.frame = CGRectMake(10, 100, 300, 200);

    textview.backgroundColor = [UIColorgreenColor];

    textview.layer.cornerRadius =5;

    textview.layer.masksToBounds =YES;

    textview.font=[UIFontboldSystemFontOfSize:14];

    [self.viewaddSubview:textview];

}


运行效果如下:

技术分享

那么问题出现了,光标出现在中间了,很明显,导航栏的高度和光标距离UITextView顶部的距离是相同的

把代码做如下修改,便解决问题:

- (void)viewDidLoad {

    [super viewDidLoad];

    self.title =@"Test";

    //在添加UITextView之前,添加个UIView

    [self.viewaddSubview:[UIViewnew]];

    

    UITextView *textview = [[UITextViewalloc]init];

    textview.frame = CGRectMake(10, 100, 300, 200);

    textview.backgroundColor = [UIColorgreenColor];

    textview.layer.cornerRadius =5;

    textview.layer.masksToBounds =YES;

    textview.font=[UIFontboldSystemFontOfSize:14];

    [self.viewaddSubview:textview];

}


运行效果如下:

技术分享

由此可见:在导航栏的ViewController中添加UITextView控件前,需要先添加一个UIView,否则,光标会下移一个(导航栏+状态栏)的高度。

具体原因不知为何会这样,请大家指教。


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。