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

【移动端bug】iOS 下 Input 和 fixed 的问题

,迟早的问题而已,这种兼容性问题真的是很烦人的,文章很长,看是不可能看的了,所以收藏备用吧 本次文章主要描述两个问题 1、IOS11 下,键盘弹起时导致的光标错位 2、IOS13 下,键盘弹起再收起时导致的...DOM 错位 先来简单描述一下这两个问题 第一个问题 IOS11 下,当你激活定位元素中的输入框的时候,就会发生光标错位 第二个问题 IOS13 下,当你激活定位元素中的输入框时,然后输入框失焦,然后再激活的时候...2探索一下原因 正如我上面说,只有在定位元素的输入框被激活时,页面仍有很多内容,仍能往上滚的时候,才出现光标错位的问题 那么 首先,观察一哈这个光标错位时的位置 好像是键盘没有唤起时,定位元素输入框的位置啊...然后我们还需要明确一个事情,就是 当激活定位元素的输入框时,页面没有内容了,无法往上滚的时候 那么是不会出现光标错位的问题的,像下面这样 ?...(0) 直接滚动到顶,从而复位但是这样带来的问题就是体验不好,用户丢失了浏览高度 所以打算是 1、在输入框激活时,保存页面浏览的高度 2、输入框失焦时,获取保存的浏览高度,然后滚动到相应的位置 3、输入框失焦聚焦时要进行防抖处理

4.7K61

iOS表情键盘的完整实现

首先是QQ和微信,这两者差不多,切换到表情键盘的时候都是没有光标的,这样的用户体验是非常不好的,没有办法在输入表情的时候框选区域,也不能拖动光标进行特定位置的复制黏贴删除等操作,微信甚至在输入框里显示的都不是点击的表情图片...同时微博国际版输入框表情黏贴后的光标定位是错误的,如下图,开始时光标是在第4个表情后面,然后复制狗头+害羞两个表情黏贴到光标后,光标还是在第4个表情后,同时黏贴的表情前后都莫名多了空格。 ?...在iOS11上,UITextView上的NSTextAttachment(表情)默认可以进行拖拽交互,但是却导致拖动光标时很容易触发这个交互(图示可以查看上面说到的微博国际版中的误触)。...if (@available(iOS 11.0, *)) { // 只在iOS11及以上才有这个属性 _textView.textDragInteraction.enabled = NO;...} 与服务的的交互 我们在输入框中输入的内容与服务端进行交互的时候都是用纯文本的,比如会把 "笑死了?"

2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    你可能需要为你的APP适配iOS11

    一 在UIKit’s Bars中加入的新功能 WWDC通过iOS新增的文件管理App:Files开始介绍,在Files这个APP中能够看到iOS11中UIKit’s Bars的一些新特性:在浏览功能上的大标题视图...在测试Demo中,创建tableView到显示出来的过程中,contentSize的计算过程如下图: Self-Sizing在iOS11下是默认开启的,Headers, footers, and cells...● UITableviewCell 和 UITableViewHeaderFooterView的 content view 在安全区域内;因此你应该始终在 content view 中使用add-subviews...这个类只能定义按钮的显示文字、背景色、和按钮事件。并且返回数组的第一个元素在UITableViewCell的最右侧显示,最后一个元素在最左侧显示。...如果使用当中有任何疑问,欢迎联系腾讯WeTest 企业QQ:800024531 iOS预审服务 【扫描工具】上传IPA包、图片、视频、应用描述即可进行测试; 多维度自动扫描提审材料的被拒风险;1小时内反馈全面的扫描报告

    82820

    你可能需要为你的 APP 适配 iOS11

    一、在UIKit’s Bars中加入的新功能 WWDC通过iOS新增的文件管理App:Files开始介绍,在Files这个APP中能够看到iOS11中UIKit’s Bars的一些新特性:在浏览功能上的大标题视图...在测试Demo中,创建tableView到显示出来的过程中,contentSize的计算过程如下图: Self-Sizing在iOS11下是默认开启的,Headers, footers, and cells...● UITableviewCell 和 UITableViewHeaderFooterView的 content view 在安全区域内;因此你应该始终在 content view 中使用add-subviews...这个类只能定义按钮的显示文字、背景色、和按钮事件。并且返回数组的第一个元素在UITableViewCell的最右侧显示,最后一个元素在最左侧显示。...如果使用当中有任何疑问,欢迎联系腾讯WeTest 企业QQ:800024531 iOS预审服务 【扫描工具】上传IPA包、图片、视频、应用描述即可进行测试; 多维度自动扫描提审材料的被拒风险;1小时内反馈全面的扫描报告

    2.5K00

    Android入门教程 | EditText 用户输入

    EditorInfo.IME_ACTION_SEND actionNext 下一项 EditorInfo.IME_ACTION_NEXT actionDone 完成 EditorInfo.IME_ACTION_DONE 设置的方法可以在布局文件中设置...android:imeOptions="actionNext" 或者在代码中 mUserEdit.setImeOptions(EditorInfo.IME_ACTION_NEXT); 接下来设置回车按键的监听事件...setSelection 有: setSelection(int start, int stop) 选择范围 setSelection(int index) 把光标移动到指定位置 例:假设有EditText...因此在实际工程中,需要判断传入的位置是否在EditText已有内容的长度范围内。...把光标移动到最后 光标右移一位 光标左移一位 全选当前输入的textmEt1.setSelection(0, mEt1.getText().length()); 监听输入内容 代码中动态限制输入长度 使用

    83800

    你可能需要为你的 APP 适配 iOS 11

    本文介绍iOS11中在UI方面做了哪些更新,有些更新可以为用户提供更加完美的体验,但也有的可能会给目前的APP带来异常bug 前言 前几天发现在做的APP在 iOS11 系统上动画有异常,在其他系统的设备上都是正常的...在UIKit’s Bars中加入的新功能 WWDC通过iOS新增的文件管理App:Files开始介绍,在Files这个APP中能够看到iOS11中UIKit’s Bars的一些新特性:在浏览功能上的大标题视图...UIToolbar and UINavigationBar— Layout 在 iOS 11 中,当苹果进行所有这些新特性时,也进行了其他的优化,针对 UIToolbar 和 UINavigaBar 做了新的自动布局扩展支持...UITableviewCell 和 UITableViewHeaderFooterView的 content view 在安全区域内;因此你应该始终在 content view 中使用add-subviews...这个类只能定义按钮的显示文字、背景色、和按钮事件。并且返回数组的第一个元素在UITableViewCell的最右侧显示,最后一个元素在最左侧显示。

    1.7K60

    真·富文本编辑器的演进之路-Span的整体性控制

    控制选中 在讲解如何在普通文本中对Span做整体性控制前,我们先来考虑下选择的问题——如何让「整体性Span」的内部无法被选中。 首先,我们要知道,Edittext的光标也是一种Span。...也就是说,我们可以通过监听光标的移动事件,通过Selection实现当光标移动到Span内部时,让它重新移动到Span最近的边缘位置,从而让Span内部永远无法插入光标,这就是我们的主要思路。...其实,Android的Span不仅功能非常强大,而且也提供了非常完善的管理API,在TextView和Edittext中,我们要监听Text的变化过程,可以使用TextWatcher,它可以在文本发生改变时进行回调...,就将Selection光标移动到最近的Span标记处。...,当我们的Selection在「整体性Span」(通过IntegratedSpan来标记)中时,就自动修改Selection的位置,从而实现「整体性Span」中间无法插入光标。

    2K30

    iOS UITableView左滑操作功能的实现(iOS8-11)

    在2和3中,如果是需要适配iOS 11之前的版本,以上三个方法都需要实现。...实现的思想是hook系统实现,但鉴于UITableView的view层级结构在iOS 11中有所改变,所以iOS8-10和iOS11的实现有所不同,以下分别给出。...考虑到代码的可复用性,自定义左滑操作的字体大小和颜色的代码不写在viewController中,而是写在UITableView和UITableViewCell的Category中,对外提供editActionTitleColor...1、iOS 8-10 设置标题颜色和字体 左滑操作后,UITableView的层级结构如下图: [4.png] 由上图可知,左滑的操作按钮是在UITableViewCell的子view,所以我们可以在UITableViewCell...;1小时内反馈全面的扫描报告。

    1.7K80

    iOS UITableView左滑操作功能的实现(iOS8-11)

    在2和3中,如果是需要适配iOS 11之前的版本,以上三个方法都需要实现。...实现的思想是hook系统实现,但鉴于UITableView的view层级结构在iOS 11中有所改变,所以iOS8-10和iOS11的实现有所不同,以下分别给出。...考虑到代码的可复用性,自定义左滑操作的字体大小和颜色的代码不写在viewController中,而是写在UITableView和UITableViewCell的Category中,对外提供editActionTitleColor...由上图可知,左滑的操作按钮是在UITableViewCell的子view,所以我们可以在UITableViewCell的category中hook掉layoutSubviews方法,找到UITableViewCellDeleteConfirmationView...iOS预审服务 【扫描工具】上传IPA包、图片、视频、应用描述即可进行测试; 多维度自动扫描提审材料的被拒风险;1小时内反馈全面的扫描报告。

    63740

    linux(五)之vi编译器

    在该模式下,用户随后输入的,除Esc之外的任何字符均将被看成是插入到编辑缓冲区中的字符。按Esc之后,从插入模式切换到编辑模式。...光标定位在文件中第一次出现字符串string的行首位置。  ...四、Vi编译器常用的命令  3.1、在文件中移动光标 h:向左移动一个字符 l:向右移动一个字符 k:向上移动一行 j:向下移动一行 ^(即Shift+6):移动到当前行的开头处...$(即Shift+4):移动到当前行的结尾处 H(大写):使光标移动到屏幕的顶部 M(大写):使光标移动到屏幕的中间 L(大写):使光标移动到屏幕的底部 Ctrl+b:上滚一屏。... 3.7、替换一个字符串 在一行内替换头一个字符串old为新的字符串new::s/old/new 在一行内替换所有的字符串old为新的字符串new::s/old/new/g 在两行内替换所有的字符串

    3.1K80

    linux 文本编辑器vi常用命令

    右)也是可以的 ^ 光标移到行首 $ 光标移到行尾 shift+g 光标移动到文件最后一行 gg 光标移动到文件第一行 4、控制命令 打开一个内容很多的文件的时候经常用到。...Ctrl+d 向下滚半屏 Ctrl+u 向上滚半屏 Ctrl+f 向下滚全屏 Ctrl+b 向上滚全屏 5、编辑命令 主要是进入编辑状态,也就是insert状态 i 光标当前位置开始编辑 o 光标的下一行开始编辑...重新加载文件,再查看日志文件的时候可以用,不断在变化的文件。...shift+j 将下一行拼接到上一行 u 撤销 :gg=G 全文自动缩进 :set nu 显示行号 :n 跳转到第n行(按回车才会跳) Ctrl+g 会在显示屏的底部显示文件名字和总的行数,当前光标的位置行号...和ctrl+a 相反 搜索了几个命令可以对标点内的内容进行操作,感觉还是比较好用,收藏下: ci’、ci”、ci(、ci[、ci{、ci中的文本内容 di’、di”、

    1.7K30

    iOS 10 ~ iOS 15 tableview 适配(使用注意事项)

    一、iOS 11 scrollview,tabelview出现页面偏移问题 image.png 注:iOS11后导航栏和标签栏半透明时才有这样的偏移问题,不透明或者隐藏则没有; 若没有导航栏或标签栏...里面的view无法响应点击 image.png 原因是cell中contentview改为了懒加载,如果添加自定义子view前没有访问.contentview,添加的view会被contentview...super.init(style: style, reuseIdentifier: reuseIdentifier) addSubview(someView) } 我们在使用时应规范写法...iOS7之后sectionHeaderHeight和sectionFooterHeight默认是自动计算高度的,如果想让高度生效,"set to 0 to disable": @available...(设置为0即自动计算高度,设置为非0数值,iOS13.2以下系统顶部有空白,iOS13.2及以上系统顶部无留白)

    2.1K20

    Linux编辑器vim(含vim的配置)

    vim界面内你是无法进行编辑的,此时是正常模式,只有进入插入模式才可进行编辑 注意:在没有创建text.c文件的前提下,使用指令 vim text.c也是可以直接进入的。...在退出的时候,如果直接退出,那么没有保存text.c文件,在当前目录下,是没有text.c文件的;如果在vim界面内保存退出,在当前目录下就可以看到text.c文件。...按「G」:移动到文章的最后 按「 $ 」:移动到光标所在行的“行尾” 按「^」:移动到光标所在行的“行首” 按「w」:光标跳到下个字的开头 按「e」:光标跳到下个字的字尾 按「b」:光标回到上个字的开头...「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。 简单vim配置 我们在vim下写代码,会有很多问题,如:无法自动缩进,不能补齐括号等问题,在编程中带来不便。...下面给大家展示一下我的配置好的vim: 可以自动补齐,自动缩进等,和VS没什么太大差别啦 这里的自动化配置方案读者可以私信小编,小编将为大家提供。

    43410

    第六章·Linux文件管理-VIM编辑

    ---- VIM基本介绍 什么是vim vi和vim命令是linux中强大的文本编辑器, 由于Linux系统一切皆文件,而配置一个服务就是在修改其配置文件的参数。.... ---- 注意:在vim中,无法直接从编辑模式切换到末行模式。...//跳转光标至当前文件内的N行(N为数字) $ //将当前光标跳转至光标所在行的末端(尾部) ^|0 //将当前光标跳转至光标所在行的头部 —>...//先删除dd(number dd),后粘贴p 撤销替换回滚 u 撤销上一次的操作(类似windows下的ctrl+z r 替换当前光标标记的单个字符...10行 让光标移动到行末,再移动到行首 移动到test.txt文件的最后一行 移动到文件的首行 搜索文件中出现的 root 并数一下一共出现多少个,不区分大小写搜索 把从第一行到第三行出现的root 替换成

    1.3K20

    Vim的基本使用(一)

    ) w => 移动到下一个单词词首 e => 移动到下一个单词词尾 b => 移动到上一个单词词首 ge => 移动到上一个单词词尾 W => 移动到下一个空白格开的字串首 E => 移动到下一个空白格开的字串尾...B => 移动到上一个空白格开的字串首 gE => 移动到上一个空白隔开的字串尾 ( => 移动到下一句首 ) => 移动到上一句首 } => 移动到下一段落 { => 移动到上一段落 [[ =>...屏幕滚动 Ctrl+u => 上滚1/2页 Ctrl+d => 下滚1/2页 Ctrl+f => 上滚1页 Ctrl+b => 下滚1页 zz => 置当前行于当前屏幕正中 zt => 置当前行于当前屏幕顶部...插入文本 i => 在光标后插入文本 a => 在光标前插入文本 A => 在当前行末插入文本 I => 在当前行的第一个非空白字符前插入文本 o => 在当前行下方开始新行 O => 在当前行上方开始新行...将1~3行文字写到新的文件filename中 :1,3 w filename 将1~3行文附加到新的文件filename中 :1,3 w >> filename 9.

    1.5K30

    WinForm RichTextBox 常用操作

    1、设置不自动选择字词 RichTextBox在选择文字的时候,如果没有关闭自动选择字词功能,我们有时候选择的时候会自动将光标前后的字或者词连接在一起进行选择。...RichTextBox有属性AutoWordSelection 设置为false但是不起作用,需要在窗体的load或者加载后设置才能起作用。...richtextbox1.Select(); //将光标位置在RichTextBox的最后 richtextbox1.Select(richtextbox1.TextLength,0); /.../滚动条滚动到光标位置 richtextbox1.ScrollToCaret() ; 5、设置是否自动换行 设置RichTextBox的 WordWrap 属性,true 为自动换行,false 为不自动换行...RichTextBox var activeRichTextBox = activeControl as RichTextBox; //通过Paste粘贴过去,因为我们的光标在辅助窗体上

    1.9K30

    UITableView性能优化-中级篇

    老实说,UITableView性能优化 这个话题,最经常遇到的还是在面试中,常见的回答例如: Cell复用机制 Cell高度预先计算 缓存Cell高度 圆角切割 等等. . ....进阶篇 最近遇到一个需求,对tableView有中级优化需求 要求 tableView 滚动的时候,滚动到哪行,哪行的图片才加载并显示,滚动过程中图片不加载显示; 页面跳转的时候,取消当前页面的图片加载请求...:(NSIndexPath *)indexPath去渲染cell,在cell中如果设置loadImage,不会调用; 而当cell进去界面中的时候,再进行cell渲染(无论是init还是从复用池中取)...YYCache中是否有该url,有的话,直接读取缓存图片数据,没有的话,走图片下载逻辑,并缓存图片 问题所在: 如上设置,如果我们cell一行有20行,页面启动的时候,直接滑动到最底部,20个cell...答: 如果是下载完,在回调中进行切割圆角的处理,其实缓存的图片是原图,等于每次取的时候,缓存中取出来的都是矩形图片,每次set都得做切割操作; 问: 那是否有解决办法?

    1.6K20

    【Android初级】教你用两行代码实现“显示隐藏密码”的效果

    用户的密码是极为隐私的,用户在输入时不希望密码被别人看到,所以几乎所有需要输入密码的场景下都会把密码隐藏起来,显示成一串的黑点。今天我们就来看下如何实现这个能动态显示密码和隐藏密码的效果。...细心的你会注意到,每次显示密码或隐藏密码后,光标自动移动到最开始的位置了。...为了解决这个问题,我们要在 CheckBox 的stateChange事件后,手动将光标移动到末尾,在 onCheckedChanged 的后面添加如下代码: // 切换后将 EditText...往期推荐 【Android初级】如何实现一个具有选择功能的对话框效果 【Android初级】如何实现一个“模拟后台下载”的加载效果 【Android初级】如何动态添加菜单项(附源码+避坑) 分享一个口语中可以替代...“deceive”的地道表达 使用TypeFace设置TextView的文字字体(附源码) 利用startActivityForResult返回数据到前一个Activity(附源码+解析) “Old school

    2K10
    领券