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

iOS 文本输入控制(献上框架)

但是我们仍然需要设置代理、实现代理,然后写上一堆判断逻辑,总是一些奇奇怪问题导致最终结果不能很快完美呈现。...于是,我写下这篇文章,总结一关于UITextField和UITextView输入控制那些事儿,并且还献上一个框架。...结论 由此可见,对文本输入控制需要在两种监听文本输入方法间灵活处理,为了提高开发效率,本人对其做了封装,下面解释一YBInputControl框架设计思路和设计模式。...大致结构就是这样,很简单,下面解析一内部实现(主要实现 UITextField 和 UITextView 差不多)。...所以,接下来要讲解是重点思想。 方法重定向 首先,我大概说明一OC中给一个对象发送消息是个什么过程: 遍历当前类方法列表,找到该方法并且执行IMP方法体(缓存机制提高查找效率)。

1K120
您找到你想要的搜索结果了吗?
是的
没有找到

尴尬!Google搜索现在也会“千人千面”了,退出登录也一样

大部分搜索结果都被定制化了 必要说明一,DuckDuckGo是Google竞争对手,主打不侵犯隐私搜索,所以这个实验还是有利益相关。 实验对象是76位志愿者,他们都生活在美国。...甚至,不同人搜出来结果首页链接数量都不一样。 比如搜“枪支管制”时候,大部分人搜索结果首页都是10结果,可是也有人奇怪搜到了9或11结果。...图上横轴是不同实验志愿者,数轴是搜索结果条数。虽然大部分人搜到前两都是ProCon和维基百科两个网站,最后两都是ProPublica和纽约时报,中间几条新闻总有不同。...并且,少数人搜索结果首页是被深度定制过,只有个别人搜到了华盛顿邮报和Twitter链接。 谷歌吹谷歌分边站 消息一出,网友们迅速站队了。...也有觉得无所谓: “DuckDuckGo是竞争对手嘛,出这种结果不奇怪。” “IP定位也算个性化么?不算吧?” “Bing上也会搜到一些莫名其妙SEO内容,天下乌鸦一般。”

52140

来看这份严肃交互分析!

没被消息覆盖屏幕区域「向右滑动」进入控件中心。 没被消息覆盖屏幕区域「向左滑动」进入相机。 相机界面内「向右滑动」切换至录像模式。...总结一能够横向滑动界面里最好不要再出现能够横向滑动操作元素。...能够滑动进入界面,尤其是横向,一般都能向进来时相反方向滑动进行返回,然而在相机界面横划你只能进入“录像”模式,你必须要点Home键才能返回。 ?...总结一:这里拿出两尼尔森启发(国内或较多被称为“尼尔森准则”),大家参考看看。 比给出错误信息提示更好设计是一开始就不要让用户容易犯错。...这个逻辑听着就觉得很奇怪如此短操作流程之内同样内容同样功能页面重复出现了两次,这让用户非常困惑:到底这个控件中心是在哪个页面。

1K70

键盘工具栏快速集成--IQKeyboardManager

IQKeyboardManager,是一个键盘工具栏库: 默认支持UITextField、UITextView、UIWebView、UIScrollView、UITableView、UICollectionView...中间文字默认是文本框占位文字 因为这个库是单例模式 也就是说无论在哪设置了一个属性 那么这个属性对全局都是生效  所以一般我习惯把这个方法写在- (BOOL)application:(UIApplication...didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {}方法里面  另外  只要导入这个库  即使不做任何操作的话  默认也是会添加工具...注意这个颜色是指textfiletintcolor manager.shouldToolbarUsesTextFieldTintColor = YES; //中间位置是否显示占位文字...boldSystemFontOfSize:17]; //控制是否显示键盘上工具

855140

iOS键盘、选取器上工具栏

键盘上添加收起按钮 先看看效果: 可以看到,键盘上面有一工具栏,最左边一个小图标,是键盘形状,点击那个图标后,就会收起键盘,这个按钮并不是自带,是我添加上去。...[textField isEqual:self.pickerText]) {// 避免与选取器工具栏起冲突,只键盘输入框时添加 //键盘上添加toolbar工具 点击工具按钮回收键盘...这里一行要注意: //关键代码,不写的话不会在键盘上面显示工具 [textField setInputAccessoryView:topView]; 这一行意思是把工具栏作为输入框InputAccessoryView...选取器上添加取消、完成按钮 还是先来看看效果再说: 这里下面是一个选择省市区三级选取器,选取器上方两个按钮,一个是取消,一个是完成。...,还记得上面的delegate中设置了一只有当不是选取器textfield时才显示键盘工具栏吗,如果不判断一,两个工具栏会冲突,结果就是什么都不显示,创建工具栏代码如下: // 工具栏按钮 -

1.4K10

键盘工具栏快速集成--IQKeyboardManager

默认支持UITextField、UITextView、UIWebView、UIScrollView、UITableView、UICollectionView 左右两个切换按钮用来切换不同文本框 会根据文本框键盘类型对弹出键盘样式做出调整...排列依据是看addSubView先后顺序 右边done是用来收起键盘 另外也可以设置点击空白区域收起键盘属性 中间文字默认是文本框占位文字 因为这个库是单例模式 也就是说无论在哪设置了一个属性...:(NSDictionary *)launchOptions { // 方法里面 } 另外只要导入这个库 即使不做任何操作的话 默认也是会添加工具 使用: 首先要导入收文件: #import...注意这个颜色是指textfiletintcolor manager.shouldToolbarUsesTextFieldTintColor = YES; //中间位置是否显示占位文字...boldSystemFontOfSize:17]; //控制是否显示键盘上工具

1.4K110

来看这份严肃交互分析!

没被消息覆盖屏幕区域「向右滑动」进入控件中心。 没被消息覆盖屏幕区域「向左滑动」进入相机。 相机界面内「向右滑动」切换至录像模式。...总结一能够横向滑动界面里最好不要再出现能够横向滑动操作元素。...能够滑动进入界面,尤其是横向,一般都能向进来时相反方向滑动进行返回,然而在相机界面横划你只能进入“录像”模式,你必须要点Home键才能返回。 ?...总结一:这里拿出两尼尔森启发(国内或较多被称为“尼尔森准则”),大家参考看看。 比给出错误信息提示更好设计是一开始就不要让用户容易犯错。...这个逻辑听着就觉得很奇怪如此短操作流程之内同样内容同样功能页面重复出现了两次,这让用户非常困惑:到底这个控件中心是在哪个页面。

89460

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

取消 Enable 复选框; -- 选中 : 用于标识控件已启用 或 被选中, 选中状态可以不断持续, 高亮状态只才显示; (4) UI 控件状态 UI 控件状态 :  -- enabled...; (2) Border Style 属性 Border Style 属性 : 设置文本框边框风格, 支持四种风格, 一般情况是选择最右边圆角矩形按钮; (3) Clear Button 属性...继承了 UIScrollView, UIScrollView 各种功能特性; 2...., 该 UITextView 控件弹性, 拖动控件内容弹回效果, 没有勾选时拖到边界僵硬停止; -- Bounce Horizontally : 水平方向弹性; -- Bounce Vertically...: 垂直方向弹性; (5) Zoom 属性 Zoom 属性 :  -- Min : UIScrollView 最小缩放比例; -- Max : UIScrollView 最大缩放比例; (6)

6.4K20

1.注册或登录页面设计:UILabel,UIButton,UITextField

学习iOS开发已经一段时日了,之前一直没有系统对iOS开发相关知识进行归纳总结,导致很多知识点云里雾里脑子里形不成iOS开发思想,现将自己在学习过程中遇到一些知识进行总结,希望能对iOS初学者能有一定帮助...由于本人只是从去年11月份才开始玩iOS(附上自己学习路线,如下图),受限于能力,难免一些不完善或不恰当地方,希望大神们多多见谅,勿拍砖,不足或需要完善地方也希望小伙伴们能多多指教。 ?...一.注册或登录界面 如下图,实现了一个注册或登录界面,这里先只介绍单个页面,不介绍点击“完成”按钮后动作,之后系列《iOS开发入门总结》中会逐步介绍,等基础知识介绍差不多了,就可以以一个完整注册系统作为小结...,可能需要将输入信息隐藏一。...= YES; /* 给button添加事件,事件很多种,我会单独开一篇博文介绍它们,下面这个时间意思是 按按钮,并且手指离开屏幕时候触发这个事件

2.3K50

MYSQL索引一些原理总结

假如把col1作为索引,col1这列数据特点是从上到依次递增,类似于自增主键,那每插入一行维护二叉树这样一个数据结构时候,我们看一二叉树维护成什么样子了。...二叉树可视化 通过这个网站演示插入这些数据,我们可以看到这样一个二叉树是不是一直单边增长,没有左子树。再仔细看一和我们学过链表是不是很像,也就是说二叉树某些场景退化成了链表。...依次插入1、2、3、4、5、6、7看一效果,可以看到,当单边增长趋势时红树会进行一个平衡(旋转)。这时,我们查询col1=6数据时,查了3次,比二叉树又有了改进。...红树做索引底层数据结构缺陷 我们可以想一,对于一些大公司特别是互联网公司,表数据动辄数百万数千万,那这样表我们可以想象一,现在我们只有7记录,树高度就达到了4层,那数百万数千万甚至上亿记录表创建索引它树高得有多高...想一,既然树高度不让增加,又想存很多数据。也就是说限制了纵向发展,那就横向发展呗。

91320

关于OC代理问题:self.delegate = self

Delegate 模式其实就是 NSProxy 设计模式一种衍生版,它们共同特点可以理解为都是传递对象消息,主要区别如下: 1....(如:UITextField等)情况,因为我们无法获知内部消息是如何传递,只能通过代理对象获知消息。...self.delegate = self 这种做法笔者并不推荐,因为它可能会带来一些安全隐患(特别是依赖第三方库非常多项目中) 问题 项目中我们经常会用到 UITextField 类或者其子类,有时候为了图其方便会把...这说明, UITextField 中,伪代码如下: - (id)keyboardInputChangedSelection:(id)obj { // self == UITextField...可以肯定是,没有任何方法调剂情况,即 “self.delegate == self”,是不会出现死循环问题

1.4K20

六天完成一个简单iOS App - 第二天

登录页面效果图 关注页面比较简单,我们这里使用xib创建界面,比较好方法是先设置好中间label位置,然后根据中间label位置来确定上面图片和下面按钮位置,这里不在赘述了,只有一个注意点,当我们...快速登录按钮布局 首先快速登录方便线都是图片,只需要简单设置frame即可,下面的三个快速登录明显是按钮,但是我们知道,UIButton默认是UIImage左边,titleLabel右边,...❌号和注册账号布局 第一部分布局非常简单,这里一个注意点:UIButton 当只有一张图片显示时候 ,建议使用image而不要设置背景图片,因为背景图片设置会看按钮多大就将图片拉伸到大,图片会被拉伸...textfield样式选择 另外登陆按钮需要设置Type为Custom,如果是System当我们按时候会自动做出处理如下图,并且会自动将字体渲染成蓝色 ?...默认情况矩形框和内容是重合 frame 以父控件 内容左上角为坐标原点, 计算出控件自己 矩形框位置和尺寸 bounds 以控件自己 内容左上角为坐标原点, 计算出控件自己 矩形框位置和尺寸

2K50

漫画 |《帝都程序猿十二时辰》

首选角落是最不挤得地方(一坨肉,基本上没有人夹你),次之是边上(半面有人夹你夹心肉饼),最后才是中间(四面八方有人夹你夹心大肉饼)每天地铁上地铁前,心中快速默念口诀:一角二边三中间,一角二边三中间...SB,小子,下车给我等着啊谁惯你臭毛病..............各种毒气脚汗味、身上好几个月没有洗澡味、香水味、包子味.............还有各种奇怪味道掺杂在一起,活生生让你再次体会一日本...首选角落是最不挤得地方(一坨肉,基本上没有人夹你),次之是边上(半面有人夹你夹心肉饼),最后才是中间(四面八方有人夹你夹心大肉饼)每天地铁上地铁前,心中快速默念口诀:一角二边三中间,一角二边三中间...SB,小子,下车给我等着啊谁惯你臭毛病..............各种毒气脚汗味、身上好几个月没有洗澡味、香水味、包子味.............还有各种奇怪味道掺杂在一起,活生生让你再次体会一日本...首选角落是最不挤得地方(一坨肉,基本上没有人夹你),次之是边上(半面有人夹你夹心肉饼),最后才是中间(四面八方有人夹你夹心大肉饼)每天地铁上地铁前,心中快速默念口诀:一角二边三中间,一角二边三中间

23260

ios tableview 上加 textfiled

ios tableview 上加 textfiled  首先附上我项目中用曾经用到几张图  并说明一用法: 图1: 图2: 图3: 心在你我说一  我当初实现 方法 ,希望能给你们一些  启示...但是 后来开发中遇到一个问题  :    因为使用是UItableviewContrller   当时我们设计就说 可不可以将下边按钮审核中 让他位置固定  ,不随tableview滚动而滚动...,但是我也是尝试了各种办法,但是还是没有办法实现,所以最后ui妥协了 就让他随位置移动吧 ,因为tableviewcontroller 虽然帮助我们实现了很多功能,但是 界面是就比较局限了,远远比不上...uitextfield    不影响用户体验,那么我是如何实现呢?...思路: uiviewcontroller+uitableview 让tableview  的当前编辑cell 始终处于  tableview 中间位置,这样的话就不会被挡住了。

93650

Lenovo X61鸟枪换炮之更换大硬盘 博客分类: 心困网中央 UbuntuXPWindowsDOS算法

然后可以看到左边个硬盘标志符号螺丝,麦克风(红色)插口旁边一点点,将它拧出来,然后再稍微将那个面板往外松一松,再将面板向上慢慢地拉出,这样就可以打开硬盘接口了。...接下来可以看到硬盘在里面了,中间一块黑色,可以先将这个拉来了,下面是固定住,上面是松,拉住上面的就出来了,然后用力慢慢地拉这个就可以将硬盘给请出来了。...,个恢复分区,即一键恢复程序,七七八八,怎么就整理成这样样子呢?奇怪。。。 ? 其它注意点: 硬盘密码:如果开机设置了硬盘密码的话,可以BIOS里修改即可,即将密码清空保存即可。...当硬盘密码保护内置硬盘拆出来做成USB移动硬盘,直接挂到其他机器上时,只会认出有新硬件,但是没有显示出各个相应硬盘分区出来,晕菜。 重新换回进去,去掉硬盘密码后,再挂接,于是OK了。...失败: 我刚尝试采用分区到分区拷贝,因为原来Ghost文件一段时间了,想直接将现在新分区直接拷贝过去,启动不了。难道需要Ghost成文件后,再Ghost过去,不解。

93220
领券