ios开发-确定/自适应textView的高度
昨天在做学院客户端的时候,随手clean了下项目。
不过xcode又闹脾气了,textview里面的字体大小居然在真机运行的时候普遍小了2号..
这下蛋疼了。应该我项目里面textview的frame都是写死的。 比如
, , , )];这样。
可是字号小了之后.. 意味着我UI的布局都对应变了...
蛋疼的。所以我就去找方法,想通过确定textview的大小,然后动态的设置frame。
同时,通过这件事也让我学到了不少,还是太嫩了。哎~。 继续努力。
下面介绍我学习过程中接触的两种办法。
1.计算输入文字在指定字体、指定容器和指定换行方式下的size.
CGSize constraintSize;
constraintSize.;
constraintSize.height = MAXFLOAT;
CGSize sizeFrame =[textContent sizeWithFont:textView.font constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
textView.frame = CGRectMake(,,sizeFrame.width,sizeFrame.height);
其中,textContent指textview的内容。
这是大家一直推崇的一种方法,可是我适用的时候,确实越到各种麻烦。
不能够算出准确的高度,也就是说,计算出的高度太小了。不能显示全部内容。这可能和我的内容中包含\n换行符有关吧。
显然这个方法无法满足我的要求,于是乎,我自己折腾了会,想想用笨办法试,开心的是,居然完美解决了我的问题。
2.利用 contentSize.height
一。初始化
, , , )];
这里的height可以先随便设置,反正最后还得根据对应的内容进行修改。
二。加入到视图中
[self.view addSubview:textview];
三。重新定义大小。
textview., , , textview.contentSize.height);
这里,我们把 height 用 textview.contentSize.height 替换,就能准确算出对应的高度了。
结合以上三步骤。 就能算出textview需要的准确高度。
不过,我也有个疑惑,为什么第一步不可以省略。 为什么第二步和第三步不可以调换顺序?
这都是我所不懂的。
水平有限,先留着,以后有能力了再来解决。
当然,如果哪位大神晓得这问题。 恳请指出。 谢谢。
学习的路上,与君共勉。
ios开发-确定/自适应textView的高度的更多相关文章
- ios开发中关闭textview控件的虚拟键盘
在ios开发中,textfield控件在点击的时候出现虚拟键盘,关掉虚拟键盘可以通过虚拟键盘中的done button和点击view中的任意地方来关闭虚拟键盘. 1.第一种方法是textfield控件 ...
- iOS 开发中单元格cell高度自适应
高度自适应分下面两种情况 1.用代码自定义的cell 用代码自定义的cell,cell高度自定义需要我们手动的去计算每个cell的字符串高度.然后返回对应的高度即可. 2.用XIB 或者 StoreB ...
- ios开发之自定义textView
自定义textView,从理论上讲很简单,根据需求自定义,比如我在开发中的需求就是现实一个字数的限制以及根据输入的文字改变提示剩余字数,那么开始我的基本思路就是自定义一个View,而里面包含一个子控件 ...
- iOS 开发中中 textView 作为子控件点击输入文本,然后退出文本的方式
方式1. 使用当双击输入的时候弹出键盘同时,使用手势和通知监听键盘的方法实现 代码如下: 1. 监听键盘通知 [[NSNotificationCenter defaultCenter] addObse ...
- ios开发之--实现TextView提示文字并且输入字数限制
实现字数控制和限制,并展示当前输入的字符串长度,以及按钮的点击状态,代码如下: 1,设置代理 @interface FKViewController ()<UITextViewDelegate& ...
- iOS开发——使用Autolayout生成动态高度的TableViewCell单元格
步骤一.TableViewCell中使用Autolayout 要点:Cell的高度必须在Constraints中指明,但不能定死,需要让内部由内容决定高度的View决定动态高度. 如UILabel设置 ...
- iOS开发--UILabel根据内容自动调整高度
写法一:对象方法,传入:字体/最大尺寸. 即可得到宽高, 最大尺寸主要限制宽度,如果是一行就给个{MAXFLOAT,MAXFLOAT};如果是多行就限制X值,Y值随便给 - (CGSize)sizeW ...
- 【swift,oc】ios开发中巧用自动布局设置自定义cell的高度
ios开发中,遇到自定义高度不定的cell的时候,我们通常的做法是抽取一个frame类,在frame类中预算好高度,再返回. 但是苹果出来自动布局之后...春天来了!!来看看怎么巧用自动布局设置自定义 ...
- iOS开发 UILabel实现自适应高宽
UILabel是iOS开发常用的控件.UILabel的属性需要了解,UILabel的特殊显示效果也需要我们掌握.UILabel自适应高宽度是很多初学者遇到的技术性难题.比如段文字,要让他完全地分行显示 ...
随机推荐
- HashMap源代码深入剖析
..
- caffe简易上手指南(一)—— 运行cifar例子
简介 caffe是一个友好.易于上手的开源深度学习平台,主要用于图像的相关处理,可以支持CNN等多种深度学习网络. 基于caffe,开发者可以方便快速地开发简单的学习网络,用于分类.定位等任务,也可以 ...
- CentOS 6.4 编译安装Mysql 5.6.14
概述: CentOS 6.4下通过yum安装的MySQL是5.1版的,比较老,所以就想通过源代码安装高版本的5.6.14. 正文: 一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server ...
- JavaScript DOM高级程序设计 5动态修改样式和层叠样式表2--我要坚持到底!
把样式置于DOM脚本之外 style属性 我们可以这样设置前景色之类的属性: element.style.color='red'; 也可以使用下面的代码设置背景颜色: element.style.ba ...
- WinAPI—— CallNextHookEx调用下一个钩子
CallNextHookEx( hhk: HHOOK; {当前钩子的句柄} nCode: Integer; {钩子代码; 就是给下一个钩子要交待的} wParam: WPARAM; ...
- poj 3274 Gold Balanced Lineup(哈希 )
题目:http://poj.org/problem?id=3274 #include <iostream> #include<cstdio> #include<cstri ...
- Jquery动画第一部分
效果图: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.asp ...
- 安装ArchLinux BIOS
VMware默认下使用BIOS 本文基于ArchLinux(https://www.archlinux.org/)Current Release: 2013.08.01的ISO写的安装教程! ISO下 ...
- [转] struts.xml配置详解
转自:http://www.cnblogs.com/fmricky/archive/2010/05/20/1740479.html struts.xml是我们在开发中利用率最高的文件,也是Struts ...
- 浅谈JavaBean,Entity Bean,Enterprise Bean等Bean以及POJO的含义
一.对于java bean,就是一个java模型组件,他为使用java类提供了一种标准的格式,在用户程序和可视化管理工具中可以自动获得这种具有标准格式的类的信息,并能够创建和管理这些类. jav ...