解决UITextView无法滚到底部
程序中有一个UITextView控件
@property (weak, nonatomic) IBOutlet UITextView *textView;
一般情况下,以下代码可实现UITextView滚到底部效果
//contentSize为文本可读范围,setContentOffset设置可视范围
CGPoint offset = CGPointMake(0, 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 - 1, 1)];
滚动到顶部
[self.logTextView scrollRangeToVisible:NSMakeRange(0, 1)];