程序中有一个UITextView控件

@property (weak, nonatomic) IBOutlet UITextView *textView;

一般情况下,以下代码可实现UITextView滚到底部效果

//contentSize为文本可读范围,setContentOffset设置可视范围
CGPoint offset = CGPointMake(, self.textView.contentSize.height - self.textView.frame.size.height);
[self.textView setContentOffset:offset animated:YES];

但如果遇到以下字符串,会无法完全滚到底部,而是滚到1/3处,需滚动三次才能够到底部。

self.textView.text=@"成功创建数据表\n查询语句是合法的\n 1 OBIX 16\n 2 RFDQ 20\n 3 SFGB 20\n 4 YBQZ 17\n 5 VZIV 18\n 6 WAPZ 18\n7 RKOZ 15\n 8 XJUH 20\n 9 HQTR 20\n 10 TERH 20\n 11 JLUV 16\n 12 JDPI 19\n 13 YCQQ 16\n14 LYYT 19\n 15 NFBJ 19\n 16 WOEO 17\n 17 UXZP 16\n 18 HJTB 17\n 19 ZETU 18\n 20 KFGU 20\n 21 OWLE 17\n 22 NOCA 17\n 23 KVHH 15\n 24 XLNO 17\n25 NSOQ 19\n 26 OFSR 18\n 27 MTIX 17\n 28 YIVS 20\n 29 SNRR 19\n 30 HHUS 20\n] 31 test 15\n 32 SVJT 17\n 33 YIXJ 16\n 34 XSQS 17\n 35 NFEZ 20\n 36 ZEBX 15\n 37 XUVD 19\n 38 XYHS 20\n 39 MTYM 18\n 40 KAXI 19\n41 YYNZ 15\n 42 QBQG 20\n 43 RWBP 18\n44 TSAX 16\n 45 AMBG 18\n 46 NHEM 19\n 47 ULGQ 17\n 48 IFTO 16\n 49 NSPU 17\n 50 COIW 18\n51 YXCK 18\n 52 ZQUX 19\n 53 ONOO 18\n 54 BTKW 20\n 55 ARNI 15\n 56 CQON 18\n 57 UFGK 17\n58 ELIY 20\n 59 AWIA 17\n 60 IUTQ 16\n 61 OSEB 17\n 62 Eazy 25\n 63 FVFJ 19\n 64 DBDO 17\n 65 YIEE 18\n 66 YETH 17\n 67 TEUI 16\n 68 MKLI 16\n 69 SPSQ 15\n 70 TRTY 20\n 71 UZIV 20\n 72 QVZQ 19\n 73 UNDS 20\n 74 FQIG 20\n 75 BXEX 18\n 76 DIDL 19\n77 BXAC 16\n 78 KPOS 15\n 79 AXYK 16\n80 EONZ 16\n 81 MEKH 15\n 82 YPTJ 16\n 83 FCAN 20\n 84 NDEN 15\n 85 PQWK 15\n 86 SSAU 16\n87 OEEF 16\n88 LKDB 15\n 89 EVXE 15\n 90 UAQH 18\n 91 SITB 20";

原因分析:1.格式影响(多个换行符) 2.控件限制(可能有一个缓冲过程),建议使用以下方法

//使用scrollRangeToVisible滚动到 “从倒数第二个开始获取倒数第一个” 位置
[self.textView scrollRangeToVisible:NSMakeRange(self.textView.text.length - , )];

滚动到顶部

[self.logTextView scrollRangeToVisible:NSMakeRange(, )];

解决UITextView无法滚到底部的更多相关文章

  1. uni-app中使用scroll-view滚到底部时多次触发scrolltolower事件

    一.前言.scroll-view基本属性: 前言: 前段时间使用scroll-view可滚动视图区域容器来做多个不同内容的展示(在我这个页面中同时使用了三个scroll-view做数据展示),因为这几 ...

  2. js控制滚动条在内容更新超出时自动滚到底部

    //滚动条在内容更新时自动滚到底部var message = document.getElementById('message');message.scrollTop = message.scroll ...

  3. 解决input获取焦点时底部菜单被顶上来问题

    <div class="search-box"> <input class="search-input" type="text&qu ...

  4. 如何用js控件div的滚动条,让它在内容更新时自动滚到底部?

    三种控制DIV内容滚动的方法: 方法一:使用锚标记要滚动到的位置,然后通过click方法模拟点击滚动到锚所在位置 <script language="javascript1.2&quo ...

  5. JS如何判断滚动条是否滚到底部

    判断滚动条到底部,需要用到DOM的三个属性值,即scrollTop.clientHeight.scrollHeight.   scrollTop为滚动条在Y轴上的滚动距离.   clientHeigh ...

  6. iOS:解决UITextView自适应高度粘贴大量文字导致显示不全的问题

    一.描述 在UITextView输入框中粘贴大量的文字时,UITextView内容自适应高度计算出现误差,导致整块文字上移消失. 二.方案 在UITextView文字改变的监听中添加如下方法即可. [ ...

  7. 如何使用jQuery可以让滚轮滚到底部可以自动加载所需内容

    话不多说先上代码 $(window).scroll(function() {   var scrollTop = $(this).scrollTop(); //滚动高度  var windowHeig ...

  8. 解决UITextView滚动后无法显示完整内容

    滚动UITextView,偶尔内容只显示一半,现象如下

  9. 解决TalbleView头部或底部子控件不显示问题

    在自定义cell头部控件UITableViewHeaderFooterView(和自定义cell的方法几乎一样)时,出现了头部控件子控件不显示的问题. 注意和自定义cell的区别. .h文件 #imp ...

随机推荐

  1. Java8大排序算法

    一.冒泡排序 基本思想:通过对待排序序列此前向后,依次比较相邻元素的值,若发现逆序则进行交换,使得较大的值从前面移动到后面,       类似于水下的气泡一样(是所有排序算法中效率最低的) publi ...

  2. qt 程序发布打包

    1. 首先把 release 版本的 exe 复制到其他文件夹,比如 Desktop\test 2. 使用开始菜单中 qt 里面的控制台窗口,使用 cd 命令打开到 Desktop\test 位置,然 ...

  3. 支持 UTF-8 中文的串口调试工具

    最近使用 mdk526,编辑设置使用 utf-8,编辑窗口中文正常,但是编译的时候提示 warning: #870-D: invalid multibyte character sequence,解决 ...

  4. 干货|微软远程桌面服务蠕虫漏洞(CVE-2019-1182)分析

    2019年8月,微软发布了一套针对远程桌面服务的修复程序,其中包括两个关键的远程执行代码(RCE)漏洞,CVE-2019-1181和CVE-2019-1182.与之前修复的"BlueKeep ...

  5. JDK源码阅读-------自学笔记(五)(浅析数组)

    一.数组基础 1.定义和特点 数组也可以看做是对象,数组变量属于引用类型,数组中每个元素相当于该队形的成员变量,数组对象存储在堆中. 2.初始化数组 常用类初始化 // 整型初始化 int[] int ...

  6. opencv vs2013提示缺少Qedit.h问题

    #pragma include_alias( "dxtrans.h", "qedit.h" ) #define __IDxtCompositor_INTERFA ...

  7. jQuery实现轮播图--入门

    jQuery是一个前台的框架. 主要函数: setInterval 语法:setInterval(code,millisec[,"lang"]) cdoe:需要执行的代码或者要调用 ...

  8. 19 01 11 javascript 获取某一种元素(所有的标签) 以及字符串处理的方法

    获取元素方法二 可以使用内置对象document上的getElementsByTagName方法来获取页面上的某一种标签,获取的是一个选择集,不是数组,但是可以用下标的方式操作选择集里面的标签元素. ...

  9. MySQL 插入 中文数据乱码解决

    问题描述: 1.在命令行中进行插入,没有问题.但是显示存在部分乱码 2.在JDBC中插入成功.中文是直接以“??”形式显示. 通过Navicat客户端查看 与在网页中看到的一一致,说明读取没有问题,问 ...

  10. Spring原理系列一:Spring Bean的生命周期

    一.前言 在日常开发中,spring极大地简化了我们日常的开发工作.spring为我们管理好bean, 我们拿来就用.但是我们不应该只停留在使用层面,深究spring内部的原理,才能在使用时融汇贯通. ...