【问题标题】:UITextView not positioned correctlyUITextView 定位不正确
【发布时间】:2013-07-08 10:01:26
【问题描述】:

嗨,我有 UITextView,我希望它的高度正好在键盘上方。我正在制作一个笔记应用程序,我需要启动 UITextView 以便它轻松滚动。代码如下:

CGRect keyboardBounds = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGRect frame = self.notesTextView.frame;
CGFloat height = self.notesTextView.frame.size.height;
height = frame.size.height;
frame.size.height -= keyboardBounds.size.height;
self.notesTextView.frame = frame;

但是屏幕变成了这样:

【问题讨论】:

标签: iphone ios keyboard uitextview


【解决方案1】:

这是您需要的答案:https://stackoverflow.com/a/1127025/189804

正确地做到这一点很困难,但很重要。不要忘记使用传递给键盘通知的信息字典中的所有信息,您需要读取新兴键盘的高度而不是硬编码一个值,您需要获取动画持续时间以便重新排列视图具有相同的动画持续时间,您还需要在编辑时响应事件 - 假设用户开始编辑,然后决定连接蓝牙键盘以简化编辑任务,或者他们在连接键盘和键盘电池的情况下开始编辑退出...

【讨论】:

    【解决方案2】:

    您需要调整滚动视图的大小。永远不要触摸 textview 的框架(除非你创建了一个子类)。

    CGRect frame = self.textView.enclosingScrollView.frame;
    frame.size.height = 42;
    self.textView.enclosingScrollView.frame = newFrame;
    

    【讨论】:

    • 什么是“enclosureScrollView”?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多