我正在做一个测试项目,并遇到了UITextView的问题.
我动态地在文本视图中获取文本的内容大小,然后在需要时增加其高度.当高度达到我设置的阈值时,我将设置scrollEnabled = YES以启用滚动.似乎发生了奇怪的事情,如以下屏幕截图所示:
在转到新行并启用滚动之前:

输入下一个字符后,将启用滚动:

之后,再次输入另一个字符,文本视图将在启用滚动后再次恢复正常(实际上高度保持与上一个屏幕截图相同,我根据内容大小更改高度,因此在启用滚动之前它变为相同的高度) :

任何人都遇到过这个问题并且能够解决它吗?如果这是一个iOS7错误,任何其他建议创建一个消息输入文本框?我想知道以前的iOS版本是否有这个问题.
编辑:
当textview的scrollEnabled为YES并更改textview.frame.size.height时,似乎会出现此问题,然后高度将重置为初始高度(如在Interface Builder中设置的高度).不知道这是否有助于解决这个问题.
下面显示了用于编辑文本视图高度的代码(它是一个选择器的方法,它将在收到UITextViewTextDidChangeNotification时调用):
NSInteger maxInputFieldWidth = self.inputTextField.frame.size.width;
CGSize maxSize = CGSizeMake(maxInputFieldWidth, 9999);
CGSize neededSize = [self.inputTextField sizeThatFits:maxSize];
NSInteger neededHeight = neededSize.height;
if (self.inputTextField.hasText)
{
[self.inputTextField scrollRangeToVisible:NSMakeRange([self.inputTextField.text length], 0)];
if (neededHeight <= TEXTVIEW_MAX_HEIGHT_IN_USE && neededHeight != previousHeight)
{
previousHeight = neededHeight;
CGRect inputTextFieldFrame = self.inputTextField.frame;
inputTextFieldFrame.size.height = neededHeight;
inputTextFieldFrame.origin.y = TEXTVIEW_ORIGIN_Y;
self.inputTextField.frame = inputTextFieldFrame;
}
else if (neededSize.height > TEXTVIEW_MAX_HEIGHT_IN_USE)
{
if (!self.inputTextField.scrollEnabled)
{
self.inputTextField.scrollEnabled = YES;
CGRect inputTextFieldFrame = self.inputTextField.frame; …Run Code Online (Sandbox Code Playgroud) 我知道iOS应用程序" PKPKT "正在使用BLE(Bluetooth Low Enery).但我对此感到好奇的是,它纯粹只使用BLE吗?或者它是否在BLE和经典蓝牙之间切换?
我测试了iPhone 5和iPhone 5s都安装了应用程序.我在两台设备上都打开了蓝牙.然后我检查了"设备"列表,看看其他iPhone是否相互配对,我发现它们不是.直到我在其中一个设备上启动PKPKT,然后我再次检查"设备"列表,现在它们已配对并连接.所以,我在想这个配对是由BLE配对完成的吗?意思是"Just works","Out of Band"或"Passkey entry"方法之一.
该应用程序中还有一个" 聊天 "功能.如果使用BLE或经典蓝牙的聊天功能,这让我很好奇吗?
所以我的问题实际上是"可以在BLE和经典蓝牙之间切换吗? ".这是该BLE技术研究的一部分.希望有人可以帮助我和其他新手使用这项新技术.
提前致谢!