IOS开发之自定义键盘】的更多相关文章

 本文转载至 http://blog.csdn.net/majiakun1/article/details/41242069 实际开发过程中,会有自定义键盘的需求,比如,需要添加一个表情键盘.本文提供一种解决方法,思路就是通过获取系统键盘所在的view,然后自定义一个view覆盖在系统键盘view上,接下来的事情就非常简单了,就是在自定义的view里做任何自己想做的事情. 这个方法的关键在于获取系统键盘所在的view.要完成这个,需要监听UIKeyboardDidShowNotification…
下面的东西是编写自定义的表情键盘,话不多说,开门见山吧!下面主要用到的知识有MVC, iOS开发中的自动布局,自定义组件的封装与使用,Block回调,CoreData的使用.有的小伙伴可能会问写一个自定义表情键盘肿么这么麻烦?下面将会介绍我们如何用上面提到的东西来定义我们的表情键盘.下面的内容会比较多,这篇博文还是比较有料的. 还是那句话写技术博客是少不了代码的,下面会结合代码来回顾一下iOS的知识,本篇博文中用到的知识点在前面的博客中都能找到相应的内容,本篇算是一个小小的功能整合.先来张图看一…
iOS 开发之 - 关闭键盘 退出键盘 的5种方式   1.点击编辑区以外的地方(UIView) 2.点击编辑区域以外的地方(UIControl) 3.使用制作收起键盘的按钮 4.使用判断输入字元 5.关于键盘遮蔽的问题 1,点击编辑区以外的地方(UIView) 这是一种很直觉的方法,当不再需要使用虚拟键盘时,只要点击虚拟键盘和编辑区域外的地方,就可以将键盘收起,下面程式码是在 UIView 中内建的触碰事件方法函式,您可以参考 Touch Panel / 触碰萤幕 / 压力感应器的基本使用方式…
iOS开发之自定义View是本文要将介绍的内容,iOS SDK中的View是UIView,我们可以很方便的自定义一个View.创建一个 Window-based Application程序,在其中添加一个Hypnosister的类,这个类选择继承UIObject.修改这个类,使他继承:UIView @interface HypnosisView : UIView 自定义View的关键是定义drawRect: 方法,因为主要是通过重载这个方法,来改变view的外观.例如,可以使用下面代码绘制一个很…
在iOS开发中.用户在进行文本输入的时候,往往会用到虚拟键盘上的回车键,也就是Return Key.回车键有时候能够是"完毕"(表示输入结束).能够是"下一项"(连续信息输入),能够是"搜索"(网页中输入).能够是"发送"(邮件输入),能够是"增加"(比方连接Wi-Fi),等等. 我们须要怎么设置呢?方法例如以下: (1)选中一个Text Field,点击右側的"Show the Attribut…
这篇文章解决的一个开发中的实际问题就是:当弹出键盘时,自定义键盘上方的view.目前就我的经验来看,有两种解决方法.一个就是利用UITextField或者UITextView的inputAccessoryView属性,另一种,就是监听键盘弹出的notification来自己解决相关视图的位置问题. 第一种解决方法相对比较简单,第二种的方法中有一个难题就是当键盘的输入方式,也就是中英文切换时,键盘的高度是会发生变化的.需要动态来调整相关视图的位置.下面开始详细介绍解决方法. 设定inputAcce…
在IOS开发中,我们model另外一个控制器的时候,一般都使用默认的转场动画. 其实我们可以自定义一些转场动画.达到不同的转场效果. 步骤如下:(photoBrowser是目标控制器) 1.在源控制器中,设置目标控制器的转场代理为 self //设置Model转场代理  photoBrowser.transitioningDelegate = self 2.同时设置目标控制器的model类型 //设置Model类型 photoBrowser.modalPresentationStyle=UIMo…
初学者在学习iOS开发时,遇到在一个textField中输入完内容后却发现虚拟键盘无法隐藏起来而不知所措的情况的人一定不占少数吧.这篇文章就说说我遇到的和虚拟键盘有关的三个问题及解决对策. 在模拟器测试时跳不出虚拟键盘怎么办 在顶部菜单的Hardware -> Keyboard中把Connect Hardware Keyboard的勾去掉. 在某个textField输入完后点击view的空白区域就自动隐藏虚拟键盘 在viewController中重写touchesBegan或者tochesEnd…
self.inputField.inputView = myView 按文本框弹出的键盘不再是普通文字输入键盘,而是我们设置的myView.一般把这个方法写在viewDiLoad方法中. 也可以在键盘上方增加一个View: self. inputField.inputAcessoryView = myView; 之后就可以在键盘上侧显示myView.…
自定义textView,从理论上讲很简单,根据需求自定义,比如我在开发中的需求就是现实一个字数的限制以及根据输入的文字改变提示剩余字数,那么开始我的基本思路就是自定义一个View,而里面包含一个子控件textView以及占位label和剩余字数现实label,看似很简单但是实际上会遇到很多坑!那么我就首先呢从创建这个自定义textView开始,然后在深入讲讲我在这之中遇到的问题和坑.. 在头文件中我是这样申明的: /** *  占位符 */ @property (nonatomic, copy)…
UITableView在iOS中开发的重要地位是毋庸置疑的,基本上应用中用到的比例是一半左右,而且大部分情况都是需要自定义单元格的,这样用户看到的App才能更有美感.之前写过UITableView的基本用法,如果对UITableView不是很熟悉可以参考本人之前的博客,因此很多UITableView的知识点就默认你已经熟悉了,先看下自定义实现的效果,这是自定义的Cell最后展现的效果: 自定义Cell 1.首先新建一个CustomCell.xib文件,方式如下: 2.新建一个继承自UITable…
在iOS开发过程中,有时候须要弹出软键盘进行输入,有时候又须要在某些情况下隐藏软键盘,以提高用户体验. 今天有几个关于软键盘的小技巧和大家分享. (1)仅仅弹出数字键盘 有某些需求中,要求用户仅仅能在Text Field中仅仅能输入数字,这须要怎么做呢?能够写一个正則表達式用于推断用户输入:或者进行字符匹配等等. 可是这都要写代码.程序猿都是爱偷懒的.在iOS中能够通过简单设置,使弹出为数字键盘,这样用户输入就仅仅能为数字了. 选中某个Text Field.选择右側的Show the Attri…
我相信针对每一个iOS开发者来说~除了根视图控制器外~所有的界面通过导航栏push过去的界面都是可以通过右滑来返回上一个界面~其实~在很多应用和APP中~用户已经习惯了这个功能~然而~作为开发者的我们~也并没有为此做些什么~因为我们在创建项目时~苹果公司已经为我们都做好了~那么~我们这期就来聊一聊这系统自带的右滑方法以及如何修改和拦截这个不被重视的方法~ 什么时候会被拦截 当我们使用代码或者用storyboard来创建一个新的控制器的时候~我们很少注意导航栏的leftItem~因为正常情况下~p…
1.隐藏状态栏 iOS升级至7.0以后,很多API被废止,其中原有隐藏状态栏StatusBar的方法就失效了. 原有方案 [[UIApplication sharedApplication] setStatusBarHidden:YES]; 但很不幸,在后来的版本中实效了,因此我们可以使用新的API来实现隐藏状态的栏的目的,如下:   -(BOOL)prefersStatusBarHidden { return YES; } 2.自动隐藏键盘并自动布局 这里提供的解决方案适用于任何类型的键盘,主…
UITabBarController是开发中经常会用到的一个视图控制器,但是默认的UITabBarController经常不能够完全满足我们的需求,所以我们经常需要自定义一个UITabBarController. 接下来,我们就来自定义一个UITabBarController.首先我们应该明白一点,自定义一个UITabBarController的时候,其实大多数情况下我们需要修改的只是它下面的UITabBar,我们需要更加丰富的样式来满足我们的需求.接下来我们看一下具体操作! 第一步:创建一个类…
前言 日常开发中经常会遇到日期选择,为了方便使用,简单封装了一个日历控件,在此抛砖引玉供大家参考. 效果 功能 支持单选.区间 支持默认选中日期 支持限制月份 支持过去.当前.未来模式 支持frame.AutoLayout 原理 层次结构使用UIStackView布局,UICollectionView复用,背景使用DecorationView. 核心代码 日历核心代码在于计算每个月的日期,主要代码如下: func month() -> [CLCalendarMonthModel] { func…
前面在做东西的时候都用到了storyboard,在今天的代码中就纯手写代码自己用封装个Button.这个Button继承于UIView类,在封装的时候用上啦OC中的三种回调模式:目标动作回调,委托回调,Block回调.具体的内容请参考之前的博客:“Objective-C中的Block回调模式”,“Target-Action回调模式”,“Objective-C中的委托(代理)模式”.在接下来要封装的button中将要用到上面的知识点.之前在做新浪微博中的Cell的时候用到了Block回调来确定是那…
首先导入一个头文件 #import <AVFoundation/AVFoundation.h> 由于后面我们需要将拍摄好的照片写入系统相册中,所以我们在这里还需要导入一个相册需要的头文件 #import <AssetsLibrary/AssetsLibrary.h> 导入头文件后我们需要创建几个相机必须的属性 /** * AVCaptureSession对象来执行输入设备和输出设备之间的数据传递 */ @property (nonatomic, strong) AVCaptureS…
BasicNavigationViewController:UINavigationViwController /* 隐藏导航底部线条 */ -(void)viewDidLoad{    [super viewDidLoad];    self.interactivePopGestureRecognizer.enabled = YES;        /**     *  隐藏导航底部的线条     */    [self findHairlineFromView:self.navigation…
第一步: 创建自定义cell类,继承自UItableVIewcell 第二步: 在sb中布局自己需要的视图控件并且将此cell与我刚刚创建的cell类进行关联.并且连线  第三步: 创建modle类,继承自NSobject  第四步: 在modle中定义自定义cell需要的属性,同时定义类方法   第五步: 实现类方法 实现类方法 第六步: 6.1 定义类方法获取useID 同时导入头文件,定义模型属性 6.2 在自定义cell.m中重写模型属性的set方法,给自定义cell赋值 6.3 实现类…
今天整好有时间, 写了一个自定义的画板!  [我的github] GLPaint主要采用QuartzCore框架, 对画布上的元素进行渲染, 然后通过UIImageWriteToSavedPhotosAlbum保存到相册. 代码耦合性比较低, 集成比较简单, 初学者可以了解一下. 1. 在ViewController中只需要实现这几个方法基本就没问题了; #pragma mark - 创建colorPiker - (void)setupColorPiker { _piker = [ColorPi…
iOS8以后, 苹果公司推出了UIPresentationController, 通过其(presentedController 和 presentingController)来控制modal控制器操作. 我对跳转 进行了封装, 只需要将单例对象设置为 VC的 transitioningDelegate! 自定义modal步骤: 1. 设置过渡代理 secVC.transitioningDelegate = [ROTransition sharedROTransition]; 2. 设置展示样式…
drawRect的工作原理:首先苹果是不推荐我们直接使用drawRect进行工作的,直接调用他也是没有任何效果的.苹果要求我们调用UIView类中的setNeedsDisplay方法,则程序会自动调用drawRect方法进行重绘.(调用setNeedsDisplay会自动调用drawRect). 在UIView中,重写drawRect: (CGRect) aRect方法,可以自己定义想要画的图案.且此方法一般情况下只会画一次.也就是说这个drawRect方法一般情况下只会被调用一次.当某些情况下…
系统默认的UITableViewCell的每行都有横线(分隔符),就算没有数据也是如此,有时候我们想只在有数据的地方有下划线,可以去除下划线,然后在awarkFromNid方法中使用addsubview的方法加入下划线到UITableViewCell的contentView中.但有些时候我们还要自定义其他类型的Cell. 自定义cell有两种方法,一种是通过xid自定义控件,一种是通过代码自定义cell. 通过xid自定义cell的步骤: 新建一个xib文件描述一个view的内部结构(假设叫做M…
有时候系统显示的键盘会挡住视图中某些重要的控件,这个时候当用户按下换行键,就应该取消UITextField对象的第一响应(First Responder)状态而关闭键盘. 1. 首先,视图控制器必须遵守UITextFieldDelegate协议 @interface XXViewController ()<UITextFieldDelegate> 2. 然后,需要再视图控制器中实现textFieldShouldReturn: - (BOOL)textFieldShouldReturn:(UIT…
http://www.cnblogs.com/iyou/archive/2014/05/25/3751669.html 1. 首先下载你想要设置的字体库,例如设置方正启体简体 2. 添加到工程,一定要注意勾选红色框框处,默认是不勾选的  添加以后 3.在plist文件中添加 4.现在已经添加成功了,但是要使用就必须知道FontName,用以下代码可查到 NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyName…
还在适配iOS6,索性下一个版本不适配了~~~~~ 问题: *** Assertion failure in -[ PCDiaryDetailReplyCell layoutSublayersOfLayer:], /SourceCache/UIKit_Sim/UIKit-2380.17/UIView.m:5776 这个是由于在iOS6 上用了自动布局才造成的  StockOverFlow相关问题: http://stackoverflow.com/questions/12610783/auto-…
最近的工程有一个个人资料页面,需要填写生日和地区的信息,需要自己定义个actionsheet. 但是到网上搜了一下都不太合适,只好自己研究研究,重写了一个.共享出来给大家用用,突然发现自己精神很高尚吗.,哈哈,其实是方便自己以后遇到类似的工程直接引用就好了. 先上效果图: 结构图: 这里简单介绍一下Actionsheet类 .h // // CustomActionSheet.h // test // // Created by wxian on 13-12-2. // Copyright (c…
移动端访问不佳,请访问我的个人博客 最近项目中需要用到瀑布流的效果,但是用UICollectionViewFlowLayout又达不到效果,自己动手写了一个瀑布流的layout,下面是我的心路路程 先先上效果图与demo地址: 因为是用UICollectionView来实现瀑布流的,决定继承UICollectionViewLayout来自定义一个layout来实现一个简单瀑布流的布局,下面是需要重写的方法: 重写这个属性得出UICollectionView的ContentSize:collect…