首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

UITextView的键盘出现时的滚动视图,但不是同一视图上的UITextField的滚动视图

是指在iOS开发中,当UITextView中的键盘弹出时,需要将视图滚动以确保键盘不遮挡UITextView的输入区域,但不需要对同一视图上的UITextField进行滚动。

为了实现这个功能,可以使用UIScrollView作为父视图,并将UITextView添加到UIScrollView中。当键盘弹出时,可以通过监听键盘的通知来获取键盘的高度,并将UIScrollView的contentInset属性设置为键盘的高度,从而使得UIScrollView的内容区域向上滚动,以确保UITextView可见。

以下是一个示例代码:

代码语言:swift
复制
import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var scrollView: UIScrollView!
    @IBOutlet weak var textView: UITextView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 监听键盘弹出通知
        NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow(_:)), name: UIResponder.keyboardWillShowNotification, object: nil)
        
        // 监听键盘隐藏通知
        NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide(_:)), name: UIResponder.keyboardWillHideNotification, object: nil)
    }
    
    @objc func keyboardWillShow(_ notification: Notification) {
        guard let userInfo = notification.userInfo,
              let keyboardFrame = userInfo[UIResponder.keyboardFrameEndUserInfoKey] as? CGRect else {
            return
        }
        
        // 获取键盘的高度
        let keyboardHeight = keyboardFrame.size.height
        
        // 设置UIScrollView的contentInset为键盘的高度
        scrollView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: keyboardHeight, right: 0)
    }
    
    @objc func keyboardWillHide(_ notification: Notification) {
        // 键盘隐藏时,将UIScrollView的contentInset重置为0
        scrollView.contentInset = .zero
    }
}

在上述代码中,scrollView是一个UIScrollView实例,textView是一个UITextView实例。通过监听键盘的弹出和隐藏通知,在键盘弹出时将UIScrollView的contentInset设置为键盘的高度,在键盘隐藏时将contentInset重置为0,从而实现了UITextView的键盘出现时的滚动视图。

推荐的腾讯云相关产品:腾讯云移动推送(https://cloud.tencent.com/product/tpns)可以用于实现移动端的消息推送功能,适用于各类移动应用场景。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ios学习——键盘收起

在开发过程中,我们经常会用到UITextFieldUITextView等文本框,然后这些文本框在点击之后会自动成为第一响应者(FirstResponder),并自动弹出软键盘。...设置当前输入结束 -(void)viewTapped:(UITapGestureRecognizer*)tap1 { [self.view endEditing:YES]; }  这种方法对于视图上任何...UITextFieldUITextView等文本框都有效,不需要对每一个UITextFieldUITextView等文本框进行进行设置。...2、利用键盘 回车键 来进行设置当前UITextFieldUITextView等文本框不是第一响应者,这种方法对UITextFieldUITextView应用不一样,需要区别进行。   ...但是,我们可以根据UITextViewDelegate提供方法对键盘输入值进行判断,如果为回车键(\n)则设置当前UITextView不是第一响应者,否则不操作。

1.8K60

编码篇-iOS开发中奇巧小伎

32、判断一个view是否为另一个view视图,或者是子试图子试图。...光标 37、当UITextView/UITextField中没有文字时,禁用回车键 38、通知监听APP生命周期 39、获取collectionViewCell在屏幕中frame 40、UITextField...文字周围增加边距 41、比较两个UIImage是否相等** 42、代码方式调整屏幕亮度 43、float数据取整四舍五入 44、让正在滑动scrollView停止滚动(不是禁止,而是暂时停止滚动)...停止滚动(不是禁止,而是暂时停止滚动) [scrollView setContentOffset:scrollView.contentOffset animated:NO]; 45、使用xib设置UIView...// 设置某个键盘颜色 textField.keyboardAppearance = UIKeyboardAppearanceAlert; // 设置工程中所有键盘颜色 [[UITextField

5.3K10

【iOS 开发】基本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)

父类属性; (3) UITextViewUITextField 区别 UITextViewUITextField 区别 :  -- 单行与多行 : UITextView 是多行文本,...UITextField 是单行文本; -- 不能触发事件 : UITextView 没有继承 UIControl 控件, 不能绑定 IBAction 事件处理方法; -- 可滚动 : UITextView...UITextView 虚拟键盘关闭 (1) 需求分析 UITextViewUITextField 中使用虚拟键盘对比 :  -- UITextField 虚拟键盘 : 右下角键是 Done,...按下这个键可以设置成关闭虚拟键盘; -- UITextView 虚拟键盘 : 由于 UITextView 是多行文本, 右下角键是 return, 这个键是 回车键, 如果我们想要将虚拟键盘退出需要有其他方法...自定义键盘附件 :  -- 作用 : 不是所有的应用都有导航栏, 在没有导航栏应用中, 需要有键盘附件来关闭键盘; -- 1.

6.5K20

iOS学习——tableview中带编辑功能cell键盘弹出遮挡和收起问题解决

最近在项目中经常用到UITableView中cell中带有UITextFieldUITextView情况,然后在这种场景下,当我们点击屏幕较下方cell进行编辑时,这时候键盘弹出来会出现遮挡待输入...言归正传,下面就说回到我们要解决问题,在UITableViewcell中,系统自带UITableViewCell格式没有自带UITextFieldUITextView这种可以编辑区域,而这种类型...2.1 UITextFieldUITextView点击之后详细流程   在对cell进行封装和自定义时候,我们需要考虑我们UITextFieldUITextView从点击编辑框到结束编辑整个过程是怎么样...下面的流程就是UITextFieldUITextView在整个编辑过程中详细流程步骤: 在成为第一响应者之前,文本框调用其代理textFieldShouldBeginEditing:  方法来允许或阻止其第一响应者...  在前面的2.1UITextFieldUITextView点击之后详细流程分析中我们知道,在点击文本之后弹出键盘时会发送一个UIKeyboardWillShowNotification通知,

3.9K80

iOS学习——键盘弹出遮挡输入框问题解决方案

,一般用于进行输入信息有两类:UITextFieldUITextView,前者是单行输入文本框,后者是可滑动多行输入文本框,在这整个开发过程中,我们需要控制键盘弹出和收起、在输入结束时候获取输入信息...一 文本框输入完整响应过程    首先,我们要对UITextFieldUITextView输入输出进行控制,需要借助其对应代理协议UITextFieldDelegate或UITextViewDelegate...textFieldDidEndEditing: 二 键盘弹出与收起 2.1 弹出键盘控制   关于键盘弹出与收起问题,从上面的响应过程分析可知,键盘弹出对于UITextFieldUITextView...关于收起键盘,我们通常有两种做法如下: 一是通过我们键盘【return/完成】按键点击事件来设置 二是设置点击空白处就收起键盘,这种方法现在比较普遍   这两种做法在UITextFieldUITextView...  还是在之前分析中,我们知道在键盘弹出和收起时,系统都会发出对应通知,所以我们可以在收到键盘弹出时候判断键盘位置和当前输入文本框位置,如果有遮挡,就将当前视图进行一个向上平移,在收到键盘回收通知时就平移到原先位置

3.5K60

UIScrollView

@property(nonatomic) CGSize contentSize; //7.内容视图距离,是从封闭滚动视图插图 @property(nonatomic) UIEdgeInsets...值是YES,垂直拖动是允许内容,即使小鱼滚动视图边界,默认是NO @property(nonatomic) BOOL alwaysBounceVertical; //12.一个布尔值,决定是否反弹总是发生在垂直滚动到达结束内容...//16.控制垂直滚动指标是否是可见 @property(nonatomic) BOOL showsVerticalScrollIndicator; //17.滚动指标点到滚动视图边缘距离...知识用户是否已经开始滚动内容 @property(nonatomic,readonly,getter=isDragging) BOOL dragging; //25.返回内容是否在滚动视图后,用户接触他们手指...@property(nonatomic) BOOL delaysContentTouches; //27.如果这个值设置为YES,那么当你在UIScrollView上面放置任何子视图时候,当你在子视图上移动时候

1.8K60

iOS文本布局探讨之一——文本布局框架TextKit浅析

iOS文本布局探讨之一——文本布局框架TextKit浅析 一、引言         在iOS开发中,处理文本视图控件主要有4中,UILabel,UITextFieldUITextView和UIWebView...其中UILabel与UITextField相对简单,UITextView是功能完备文本布局展示类,通过它可以进行复杂富文本布局,UIWebView主要用来加载网页或者pdf文件,其可以进行HTML,...二、TextKit框架结构         界面在进行文本渲染时,有下面几个必要条件: 1.要渲染展示内容。 2.将内容渲染在某个视图上。 3.内容渲染在视图上尺寸位置和形状。...最后,将要展示NSTextContainer绑定到具体UITextView视图上。...需要注意,TextKit进行布局核心思路是最终视图对应一个文本块Container,并不是一段文本内容Storage,LayoutManager会将完整内容根据其中Container尺寸进行分页

1.7K10

iOS UI控件了解一下

UIView操作方法 1)添加视图 UIViewaddSubview:方法可以添加子视图,对于同一视图所有子视图来讲,后添加视图会把已加视图盖在下面。...③添加到父视图上,用以显示。 ④释放。...在你不需要输入时候,可以使用收回键盘方法,收回弹出键盘; (3)UITextField和UILabel相比,UILabel主要用于文字显示,不能编辑, UITextField允许用户编辑文字(输入...①开辟空间并初始化(如果本类有初始化方法,使用自己;否则使用父类); ②设置文本显示、输入相关属性; ③添加到父视图上,用以显示; ④释放; 3)UITextField...6)输入控制: UITextField类提供了许多控制输入API,包括密码模式、键盘样式、自定义键盘等(详见下表) ?

2.6K20

iOS 9人机界面指南(四):UI元素(下)- 腾讯ISUX

详情展开按钮以一个单独视图展示特定项目的更多详情信息与功能。 当详情展开按钮在表格行中出现时,点击表格行其它区域不会激活此按钮,只会选中该行,或者触发app中其它自定义行为。...如果你需要展示备选项数量很多,考虑使用表格视图(Table View)而不是选择器。因为表格视图高度较大,内容滚动起来会更快。...文本框 高度固定,包含圆角 当用户点击它时,自动唤起输入键盘 可以包含系统提供按钮,如书签按钮(Bookmarks) 可以展示多种文字样式(了解更多请参考 UITextView) 使用文本框来获取用户输入少量信息...请注意,由于键盘布局以及输入方法是由用户系统语言设置决定,这是你不能控制。 4.4临时视图 4.4.1 警告框 警告框用于告知用户一些会影响到他们使用app或设备重要信息。 ?...最好能设计一种符合逻辑并始终保持一致过渡方式,让用户容易感知并且记忆。在没有充分理由支持情况下,最好不要改变这些默认过渡方式。

13.2K30

图文混排

它良好结合了 UIKit 和 Core Graphics/Quartz: UIKit UILabel 允许你通过在 IB 中简单拖曳添加文本,你不能改变文本颜色和其中单词。...UITextViewUITextField、UILabel都已经基于Text Kit重新构建,所以它们都支持分页文本、文本包装、富文本编辑、交互式文本着色、文本折叠和自定义截取等特性。...为此,每个文本视图都有一个文本容器,它精确地描述了这个可用区域。在简单情况下,这是一个垂直无限相当大矩形区域。文本被填充到这个区域,并且文本视图允许用户滚动它。...5、UITextView UITextView作为显示出来实际文本视图,在 TextKit 中,文本视图有两个目的:第一,它是文本系统用来绘制视图。...具体来说,文本视图实现 UITextInput 协议来处理键盘事件,它为用户提供了一种途径来设置一个插入点或选择文本。它并不对文本做任何实际上改变,仅仅将这些改变请求转发给刚刚讨论文本存储。

1.5K30

最新iOS设计规范四|3大界面要素:视图(Views)

浮层适合大屏幕上,可以包含各种元素,包括导航栏、工具栏、标签栏、表格、集合、图像、地图和自定义视图。当浮层出现时,其他视图交互行为会被禁止,直到浮层被取消/关闭。...不要在一个滚动视图中放置另一个滚动视图。这样做带来后果主要为会产生一个不可预期用户界面,从而控制起来会变得非常困难。 同一时刻只显示一个滚动视图。...用户经常会在滚动时使用非常大幅度动作,如此便会非常难以避免在同一屏幕中对相邻滚动视图进行交互操作。...文本视图可以是任何高度,并可以通过滚动方式显示额外内容。 默认情况下,文本视图文本是左对齐,并使用黑色系统字体。如果文本视图可编辑,则在视图内部点击时,屏幕下方会弹出键盘。 ?...为了用户可以流畅地进行数据输入,在编辑文本视图期间显示键盘,应该适合于该字段中内容类型。例如,输入支付密码弹出是数字键盘

8.4K31

UIScrollView一步步实现1 简介1.1 工作原理1.2 UIScrollView常见几个重要控件1.3 UIScrollView常见重要属性1.4 手工代码实现拖动2 三个重要属性

UIScrollView是一个能够滚动视图控件,可以用来展示大量内容,并且可以通过滚动查看所有的内容 1.1 工作原理 在缩放时候,原理是操作被缩放控件transform数值。...1.2 UIScrollView常见几个重要控件 UITableView UICollectionView UITextView 1.3 UIScrollView常见重要属性 属性名 作用 contentSize...设置UIScrollView滚动范围 contentOffset UIScrollView当前滚动位置 contentInset 增加滚动视图四周增加滚动范围 bounces 是否有弹簧效果,默认是开启...,没有超出contentSize区域,可以滚动 -(void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated; 2.2 contentSize...和普通内边距作用相反,不是让内容向里面缩进。是在不改变原有的contentSize基础上,让scrollView中内容向四周多滚动一些。

1.5K60

Android开发笔记(三十六)展示类控件

聊天室窗口高度是固定,新文字消息总是加入到窗口末尾,同时窗口内部文本整体向上滚动,而窗口大小保持不变、位置也保持不变。...maxLines : 指定文本最大行数。 scrollbars : 指定滚动方向,一般取值vertical,如不指定将不显示滚动条。注意该属性只能在xml中设置。...EditText还有一个需要特殊处理地方,就是自动关闭软键盘。一般我们希望点击其它控件时,原输入框键盘就要自动消失,可惜Android不是这样处理。...下面是自动关闭软键盘两种方法: 1、调用toggleSoftInput方法,该方法会关闭所有控件弹出键盘; InputMethodManager imm = (InputMethodManager...常用取值说明包括:fitXY表示拉伸图片正好填满视图(图片可能被拉伸变形),fitStart表示拉伸图片使之位于视图上部,fitCenter表示拉伸图片使之位于视图中间,fitEnd表示拉伸图片使之位于视图下部

1.4K30
领券