iOS Dev (59) 高度自适应的UITextView

iOS Dev (59) 高度自适应的UITextView

大家好,又见面了,我是全栈君。

iOS Dev (59) 高度自适应的UITextView

作者:阿锐 地址:http://blog.csdn.net/prevention

例如以下 _inputTextView 为一个 UITextView 实例。首先要设置它的 delegate。然后要在你的头文件的 interface 声明中加上 UITextViewDelegate。

_inputTextView.delegate = self;

在 implementation 中实现例如以下方法:

- (void)textViewDidChange:(UITextView *)textView
{
    // 获取原来的 frame
    CGRect tmpRect = _inputTextView.frame;

    CGSize size = [_inputTextView.text sizeWithFont:[UIFont systemFontOfSize:_inputTextFontSize]
                               constrainedToSize:CGSizeMake(YOUR_TEXTVIEW_WIDTH, 2000)
                                   lineBreakMode:NSLineBreakByWordWrapping];

    tmpRect.size.height = size.height + 20; // 20 points for padding
    tmpRect.origin.y = keyboardPositionY - tmpRect.size.height;

    _inputTextView.frame = tmpRect;
    _inputTextView.text = _inputTextView.text;
}
  • 注意上面的 YOUR_TEXTVIEW_WIDTH 是你的 UITextView 的宽度。

  • 注意 lineBreakMode 选 NSLineBreakByWordWrapping。比較老的版本号中是 UILineBreakModeWordWrap。
  • size.height + 20 中的 20 是我留出来的 padding。
  • _inputTextFontSize 是你设置的字号高度
  • 这批那文章来自 blog.csdn.net/prevention 。转载请注明。

转载请注明来自:http://blog.csdn.net/prevention

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116645.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • android studio不能输入中文_Android模拟器

    android studio不能输入中文_Android模拟器很多Android项目的运行都需要用到中文输入法,在一年前的AndroidStudio需要导入输入法apk安装,现在新版的AndroidStudio免去了这个麻烦,下面就教大家如何设置谷歌拼音输入法。

    2022年8月30日
    2
  • 文件无法保存(文件夹已损坏无法读取怎么办)

    要使用EmguCV,首先需要去官网下载安装包(除了下载安装包,还有其他几种方式)。安装完成后,得配置环境变量。这里不再赘述。网上的教程很多。我这里分享一个官网的下载链接:https://sourceforge.net/projects/emgucv/files/emgucv/这里使用窗体程序进行说明,首先新建个窗体1.引用EmguCV的DLL:usingEmgu.CV;usingEmg…

    2022年4月10日
    80
  • pycharm如何导入自定义模块_Python添加模块

    pycharm如何导入自定义模块_Python添加模块问题:明明python已经安装模块,但是在pycharm打开的项目中,导入改模块,却提示找不到改模块解决办法:需要在project中导入该模块,具体操作如下:1、点击File,选择Settings选项2、选择projectinterpreter选项,上面显示的是已安装的模块,要安装我们所需要的模块,点击右侧”+”3、搜索需要安装的模块,点击左下角的InstallPackage,等待安装,完成之后界面会提示:Package‘openpyxl’installedsuccessfully,表示

    2022年8月29日
    5
  • Django(7)url命名的作用「建议收藏」

    Django(7)url命名的作用「建议收藏」前言为什么我们url需要命名呢?url命名的作用是什么?我们先来看一个案例案例我们先在一个Django项目中,创建2个App,前台front和后台cms,然后在各自app下创建urls.py文件

    2022年7月29日
    6
  • UFT录制

    UFT录制在惠普实训学习了UFT(UnifiedFunctionalTesting),是一种自动化测试工具,以VBScript为内嵌语言。打开UFT主界面,选择菜单file/new或file/open可以新建或打开UFT测试。在新建的测试界面打开action,使用HP自带的飞机订票系统软件,打开飞机订票系统,然后点击录制record,弹出窗口选择recordandruntesting,单击OK按钮

    2022年5月23日
    80
  • 爆炸人游戏各关的道具_盗版星露谷可以联机吗

    爆炸人游戏各关的道具_盗版星露谷可以联机吗1.算法流程2.update函数运行流程updateDelta:Updatedeltaifweneedittocheckrelinearizationlater update.pushBackFactors:Addanynewfactors 为每一个新的factor产生一个索引,把新factor装入nonlinearFactors中 把需要移除的factor从nonlinearFactors和linearFactors中同时移除,把从nonlinea.

    2025年7月17日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号