本文介绍: 因为如果在Cell的init方法里面设置UITextView的contentOffset,是只对那一时刻的UITextView生效,一旦有文字内容变换,其contentOffset又会重新计算,导致前面失效。当然,不是所有的人的业务都是相同的,设置完成后可能发现并不符合自己的业务需求,发现文字不是竖直方向的居中。UITableView内存在一个Cell,该Cell内有一输入框可以输入文字,超出输入框宽度则换行展示,即该Cell高度要增加。3:判断是否换行后更新UITableView即可。
业务描述:
UITableView内存在一个Cell,该Cell内有一输入框可以输入文字,超出输入框宽度则换行展示,即该Cell高度要增加
如图:
解决方法:
思路:
1:取到最大输入框宽度
2:计算当前文字宽度与最大输入框宽度用以判断是否应该换行(Cell高度增加)
3:判断是否换行后更新UITableView即可。
注意点:
换行
回调事件
UITextFiled继承自UIControl,可以使用addTarget或代理方法,而UITextView继承自UIScrollView, 只有代理方法。那么解决方法就是在Cell内注册UITextView的代理,.h文件里面(swift的public属性)声明对应的block回调,例如:
cell的.h文件:
这样,在cellForRowAtIndexPath
方法里面就能拿到Cell内的UITextView回调事件进行业务判断了。当然如果业务是以其他形式编写的可以自由发挥,不一定放在UIViewController里面或者cellForRowAtIndexPath
方法内处理。
UITextView的文字Inset
UITextView的placeholder属性
UITextView的文字竖直方向上居中
刷新UITableView导致Cell内的UITextView焦点丢失
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。