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,否则,光标会下移一个(导航栏+状态栏)的高度。

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

时间: 2024-10-05 05:21:57

IOS之导航栏中添加UITextView控件bug的相关文章

JScrollPane控件中添加其他控件的问题&&JScrollPane设置滚动条&&调整滚动速度

如果要在JScrollPane控件中添加其他控件,不能用下面这种方法 JScrollPane j = new JScrollPane();j.add(new JButton("点击")); 只能通过以下方法添加 JScrollPane j = new JScrollPane(new JButton("点击")); 或者 JScrollPane j = new JScrollPane();j.getViewport().add(new JButton("点击

android 动态背景的实现以及SurfaceView中添加EditText控件

      首先还是一贯作风,我们先看案例: 静态图看不出来效果,如果用过此软件(扎客)的同学们都知道,她的背景会动.怎么样,是不是觉得很时尚,起码比静态的要好(个人观点).其实实现起来并 不复杂,这个如果让做游戏程序员做简直太小儿科了,这里我说明一点,其实我们做应用的也应该多少了解下游戏编程思维,起码对我们做应用有很好的帮助. 下面我简单介绍下实现方式. 实现原理:自定义一个SurfaceView控件.对之不停的onDraw,使得其背景动起来. 对于SurfaceView如果不了解的同学们麻烦

VC中添加web控件的方法

在VC中使用WebBrowser控件的两方法 黄森堂(vcmfc)著 ClassWizard方式: 1.创建包装类:View->ClassWizard->Add Class->Form a Type Library->C:\winnt\system32\shdocvw.dll->只选择IWebBrowserApp类->OK->OK 2.声明一个类变量:IWebBrowserApp m_internetexplorer;,并包含刚才的头文件(xxx.h) 3.在类的

worklight 中添加时间控件

在我们使用worklight开发的过程中,由于文档的不开源和插件的缺少,总是自己琢磨很多东东,更有胜者 需要调用源代码实现某些不易实现的功能.在这里把实现的功能代码贴出来,如有不足之处还望指正! 实现的步骤就不多说了,上篇中已经解说 实现日期插件 1 public class DatePickerPlugin extends CordovaPlugin { 2 3 private static final CordovaActivity ctx = null; 4 private static

005.使用百度SDK写hello baidumap时,在布局xml文件中添加地图控件时;提示'clickable' attribute found, please also add 'focusable' 错误

0.报错&提示信息: 'clickable' attribute found, please also add 'focusable'  A widget that is declared to be clickable but not declared to be focusable is not accessible via the keyboard. Please add the focusable attribute as well. 1.原因: 一个控件,如果没有定义focusable

VS工具箱中添加DevExpress控件

关闭所有VS进程: ①使用控制台进入DevExpress安装目录: D:\DevExpress\Components\Tools\ ②添加DevExpress控件:ToolboxCreator.exe/ini:toolboxcreator.ini ③移除DevExpress控件:ToolboxCreator.exe/ini:toolboxcreator.ini/remove 注:执行至过程②时打开VS就会自动加载.

在工作表左侧中添加TreeView控件

开发环境基于VSTO:visual studio 2010,VB .Net,excel 2007,文档级别的定制程序. 需求是在sheet的左侧停靠System.Windows.Forms.TreeView控件,实现类似资源浏览器的效果,另外,tree节点使用自定义的图标,支持复选框. 首先准备好树节点的图标,使用visual studio 2010自带的图标可以省去很多麻烦(在安装目录\Common7\VS2010ImageLibrary).我挑选了4个16x16大小的图标拷贝到vsto工程下

Fragment中添加spinner控件问题

今天编写Android程序,遇到一个问题: fragment是activity的一部分,具有高度的自由性.我编写了一个Fragment程序,在其中添加了Spinner控件(就是普通的添加方式),但是就是运用ArrayAdapter进行数据绑定的时候 ArrayAdapter<String>(View,int,String)中的View类型参数,并不能用常用的this来代替.必须用getActivity().getBaseContext()来代替. 下面来说明一下具体的原因: this应用上下文

解决UIScrollView中添加子控件出现“UIScrollView Scrollable Content Size Ambiguity”的办法

来自StackOverflow的帖子,原文见这里. So I just sorted out in this way: Add in the UIScrollView a UIView (we can call that contentView); In this contentView, set top, bottom, left and right margins to 0 (of course from the scrollView which is the superView); Set