iOS7以后UITextView 技巧

坑1:
iOS7及以上的版本上,UITextView出现这样的问题:弹出键盘时,没输入任何文字,但是光标位置不是在最上方。

解决方案: iOS7以后新增了一个属性automaticallyAdjustsScrollViewInsets,将其置为NO即可。别忘了加版本判断。

if (IOS7_And_Later) {
        self.automaticallyAdjustsScrollViewInsets = NO;
}  

坑2:
iOS7及以上的版本上,UITextView输入中文时,在输入多行后,光标有时会上下跳动,输入文字的时候内容有时会往上跳,光标都显示不出来。这个bug坑死好多人啊,特别是做聊天输入框的时候,不得已找一些非正常的方法解决。从网上找的各种解决方案都不行。

- (void)textViewDidChangeSelection:(UITextView *)textView
{  

    //fix ios7 bug (modified by 老岳).
    if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
        CGRect r = [textView caretRectForPosition:textView.selectedTextRange.end];
        CGFloat caretY =  MAX(r.origin.y - textView.frame.size.height + r.size.height + 8, 0);
        if (textView.contentOffset.y < caretY && r.origin.y != INFINITY) {
            textView.contentOffset = CGPointMake(0, caretY);
        }
    }
}
时间: 2024-10-29 16:34:54

iOS7以后UITextView 技巧的相关文章

iOS6与iOS7屏幕适配技巧

一.没有包装任何 导航控制器 或者UITabBarController 1.控制器的view是UIScrollView/UITableView/UICollectionView时(控制器是UITableViewController的时候) - (void)viewDidLoad { [super viewDidLoad]; // #ifdef __IPHONE_7_0是判断是否运行在Xcode5环境下,如果在Xcode5环境下才有下面的代码 #ifdef __IPHONE_7_0 if ([[U

UITextView in iOS7 doesn&#39;t scroll

UITextView in iOS7 has been really weird. As you type and are entering the last line of your UITextView, the scroll view doesn't scroll to the bottom like it should and it causes the text to be "clipped". The problem is due to iOS 7. In the text

UITextView的一些技巧

1.在指定位置插入字符串:   NSMutableString *TextViewStr=[[NSMutableString alloc] initWithString:TextView.text];        [TextViewStr insertString:@"your strings" atIndex:TextView.selectedRange.location];        TextView.scrollEnabled=NO;        TextView.tex

iOS7 UITextView 光标问题

最近在项目中遇到UITextView在ios7上出现编辑进入最后一行时光标消失,看不到最后一行,变成盲打,stackOverFlow网站上有大神指出,是ios7本身bug,加上下面一段代码即可: 1 -(void)textViewDidChange:(UITextView *)textView { 2 CGRect line = [textView caretRectForPosition: 3 textView.selectedTextRange.start]; 4 CGFloat overf

IOS 键盘的显示与关闭,以及移动显示(UITextView处理完整版)

IOS 键盘的显示与关闭 在每一个IOS应用中,几乎不可避免的要进行文本输入操作,例如要求用户填写登陆注册信息,进行话题的评论回复,等等.用到的文本输入组件有UITextField,UITextView,对于这两个组件的相关属性和方法想必大家都很熟悉,但貌似对于键盘的显示或隐藏过程貌似常常不是很清楚,其实本人也是一知半解,所以趁此做简单的总结,基本上以下描述出自于官方的文档,并没有什么更改. 1.开启键盘面板 当用户触击某一个view时,系统会自动指定该view为第一响应对象(first res

iOS 保持界面流畅的技巧

这篇文章会非常详细的分析 iOS 界面构建中的各种性能问题以及对应的解决思路,同时给出一个开源的微博列表实现,通过实际的代码展示如何构建流畅的交互. Index演示项目屏幕显示图像的原理卡顿产生的原因和解决方案CPU 资源消耗原因和解决方案GPU 资源消耗原因和解决方案AsyncDisplayKitASDK 的由来ASDK 的资料ASDK 的基本原理ASDK 的图层预合成ASDK 异步并发操作Runloop 任务分发微博 Demo 性能优化技巧预排版预渲染异步绘制全局并发控制更高效的异步图片加载

基于uitextview的富文本实现方法

ios7.0之前复杂的富文本只能基于coretext实现,而coretext由于不够灵活实现起来十分复杂,而基于coretext的第三方又往往缺这少那,改动成本高. ios7.0之后推出了textkit,仅用uitextview就可以实现丰富的功能,但此种方法由于过度封装使笔者在应用中也遇到了不少坑. 1.伪装成uilabel 2.复制粘贴等功能屏蔽 3.放大镜屏蔽 4.事件响应的同时图片附件也会随之增加点击效果该如何屏蔽 5.链接不允许换行时的解决方法 6.自定义事件响应 未完待续

ios7状态栏和导航条的一些设置

iOS7的最新版本引入了大量的视觉变化.从开发人员的角度来看,导航栏和状态栏是2个最显而易见的变化.状态栏现在是透明/半透明的,也就是说view 可以透过状态栏,导航栏的背景图像可以向上延伸的状态栏的后面. 默认的导航栏在iOS中7 在我们进去的定制,让我们先来看看由Xcode 5和iOS 7生成的默认导航栏.只需用单-视图-控制器模板的Xcode项目.嵌入视图控制器在导航控制器.如果您不想从头开始,你可以下载这个示例的Xcode项目. Xcode5下面有iOS 6和iOS7两个模拟器.你可以尝

代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧

代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧 最近接触了几个刚入门的iOS学习者,他们之中存在一个普遍和困惑和疑问,就是应该如何制作UI界面.iOS应用是非常重视用户体验的,可以说绝大多数的应用成功与否与交互设计以及UI是否漂亮易用有着非常大的关系.而随着iOS开发发展至今,可以说在UI制作上大家逐渐分化为了三种主要流派:使用代码手写UI及布局:使用单个xib文件组织viewController或者view:使用StoryBoard来通过