有没有一种很好的方法来调整a的大小UITextView
以符合其内容?比方说我有一个UITextView
包含一行文字:
"Hello world"
Run Code Online (Sandbox Code Playgroud)
然后我添加另一行文字:
"Goodbye world"
Run Code Online (Sandbox Code Playgroud)
在Cocoa Touch中是否有一个好方法rect
可以保存文本视图中的所有行,以便我可以相应地调整父视图?
再举一个例子,查看日历应用程序中事件的注释字段 - 注意单元格(及其UITextView
包含)如何扩展以包含注释字符串中的所有文本行.
如何在iOS 7中使用UITextView计算UITableViewCell的高度?
我在类似的问题上找到了很多答案,但sizeWithFont:
参与了每个解决方案,这个方法已被弃用!
我知道我必须使用- (CGFloat)tableView:heightForRowAtIndexPath:
但是如何计算TextView显示整个文本所需的高度?
目前我正在尝试基本实现和精确复制Apples iMessage App.
这意味着我需要一个停靠在屏幕底部的UITextView,并在它成为firstResponder时向上移动. - 实际上这很容易.有很多方法可以做到这一点,如果收到通知,最常见的两个当然是向上或向下动画.另一种是通过inputAccessoryView来完成.可悲的是,有一些功能,另一个没有.它们似乎是相互排斥的.
最大的问题是轮换.
我已经深入研究了至少七个不同的github项目,它们都重新实现了我想要实现的相同功能/行为,但实际上所有这些项目都失败了.
例如,官方Facebook/FacebookMessenger /(可能是WhatsApp)应用程序使用的HPGrowingTextView是一大块垃圾代码.拿你的iDevice,打开Facebook应用程序,进行聊天,弹出键盘并旋转你的设备.如果你注意你会注意到输入条略微跳跃,并在键盘的框架和它自己的框架之间留下一些空白.然后在显示键盘时查看iMessage中的Apples实现.这是完美的.
除此之外,HPGrowingTextView库使用的contentOffset和EdgeInset-hacking给了我噩梦.
所以我想自己做,从头开始.
现在,我已经有了一个非常光滑,优雅和无法实现的不断增长的UITextView,但缺少一部分.
优雅的旋转.
当我在willRotateToInterfaceOrientation:duration:方法中简单地将帧调整到各自的新位置时,一切都会完美地完成,但我遇到的问题与HPGrowingTextView(请参阅Facebook App)有关.旋转发生时,输入视图和键盘之间有一点点空间.
我发现当将设备旋转到横向时,当前显示的人像键盘不会"变形"而是消失(发送'willHide'通知)并重新出现横向版本(发送'willShow'通知).过渡是一种非常微妙的淡化,可能还有一些调整.
我使用inputAccessoryView重新实现了我的项目,看看当时发生了什么,我感到非常惊喜.inputAccessoryView与键盘完美同步旋转.两者之间没有空隙/间隙.
遗憾的是,我还没有想出如何将inputAccessoryView停靠在屏幕底部并且不会在键盘旁边消失/移出它...
我不想要的是hack-y解决方案,例如,"在toInterfaceOrientation的CoordinateSystem中稍微降低帧,然后在调用didRotateFrom ...时将其移回."
我知道另一个已经设法实现此类行为的应用程序,它是"Kik Messenger".
有没有人有想法,建议或链接,我还没有看到这个主题?
谢谢你!
注意:一旦这个问题得到解决,我将开放项目供所有人利用,因为几乎我在过去几天能够找到的所有实现都是一团糟.
我正在创建一个评论部分,就像Facebook在iOS应用程序中使用它的消息部分一样.我希望UITextView
调整高度,以便我输入的文本适合它,而不是你必须滚动才能看到溢出的文本.我有什么想法可以这样做吗?我调查了可能使用的CGRect
是分配给文本视图的大小和高度,然后匹配内容大小:
CGRect textFrame = textView.frame;
textFrame.size.height = textView.contentSize.height;
textView.frame = textFrame;
Run Code Online (Sandbox Code Playgroud)
我假设我需要某种功能来检测文本何时到达边界UITextView
然后调整视图的高度?有没有人在用同样的概念挣扎?
ios ×3
uitextview ×3
cocoa-touch ×2
autolayout ×1
cgrect ×1
height ×1
ios7 ×1
iphone ×1
uikeyboard ×1
uikit ×1
uitableview ×1