- 博客(36)
- 收藏
- 关注
原创 Swift UIGestureRecognizer介绍
UIGestureRecognizer UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,使用它的子类才能等到具体手势 UITapGestureRecognizer 敲击UIPinchGestureRecognizer 捏合,用于缩放UIPanGestureRecognizer 拖拽UISwipeGestureRecognizer 轻扫UIRot
2017-10-20 11:17:22
6153
原创 Swift UIMenuController的简单运用和简单自定义
认识系统 UIMenuController * 创建系统 UIMenuController// 要让添加 menu 的目标控件成为第一响应者,否则某些功能会错乱,例如 label 未成为第一响应者但是 label 的 menu 有 paste 功能会直接 paste 到第一响应者上 label.becomeFirstResponder() // 由于系统只允许一个
2017-10-14 17:51:35
3003
原创 oc 深拷贝和浅拷贝
深拷贝和浅拷贝 深拷贝 : 拷贝出来的对象与源对象地址不一致! 这意味着我修改拷贝对象的值对源对象的值没有任何影响.浅拷贝 : 拷贝出来的对象与源对象地址一致! 这意味着我修改拷贝对象的值会直接影响到源对象.
2017-07-26 15:07:02
576
原创 OC 属性的内存管理
属性(@property)的内存管理assign: assign一般用来修饰基本数据类型 int 、 float (基础类型没有引用关系)意义:如果这个用assign属性修饰的property代表一个指向对象的指针,那么当这个指针指向某个对象时,这个对象的引用计数不应该被改变。也就是说,用assign属性修饰的property,不应该持有一个对象。因为这个property不持有对象,所以它所指向
2017-07-26 15:04:34
435
原创 OC 空指针和野指针
空指针 : 没有存储任何内存地址的指针就称为空指针(NULL指针)。2.被赋值为nil的指针,在没有被具体初始化之前,为nil。nil、Nil、NULL、NSNULL的含义和区别 nil:OC中的对象的空指针Nil:OC中类的空指针NULL:C类型的空指针NSNull:数值类的空对象野指针 1.”野指针”不是nil指针,是指向”垃圾”内存(不可用内存 如:内存被销毁的时候)的指针。
2017-07-26 14:42:05
1052
原创 Swift storyBoard 判断 segue 目标
override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "ModalToPassCode"{ let destVC = segue.destination as! PassCodeViewController de
2017-06-13 11:21:59
1006
原创 Swift 系统Modal转场样式
效果图: 默认: crossDissolve效果: flipHorizontal效果: partialCurl效果: 代码更改动画效果://设置转场动画效果 let testVC = TestViewController() // 设置控制器的 modalTransitionStyle 改变转场效果 testVC.modalTra
2017-06-13 10:48:45
502
原创 Swift 限制 TextField 输入字符数量
效果图 方法: /// 限制 textField 字符输入数量 /// /// - Parameters: /// - textField: 用户输入的textField /// - range: 例如粘贴或者选中一段文字所占用的范围 /// - string: 用户将要输入的字符 /// - Returns: 是否允许用户输入到
2017-06-12 21:37:27
7960
原创 Swift 开启手电筒
第一步:导入AVFoundation 第二步:获取到用户使用的设备 第三步:判断用户设备是否具有闪光灯,并且可用import AVFoundationfunc openTorch(){ guard let device = AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeVideo) else {
2017-06-12 21:14:14
1511
原创 Swift 毛玻璃效果
关闭前 关闭后 代码如下:// 是否开启毛玻璃效果navigationController?.navigationBar.isTranslucent = true黑色半透明样式 代码如下navigationController?.navigationBar.barStyle = .blackTranslucent
2017-06-12 20:58:22
1065
原创 Swift 设置navigationBar的title字体大小和字体颜色
代码如下:title = "测试字体" navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.orange, NSFontAttributeNa
2017-06-12 20:50:41
6424
原创 Swift 设置 tabbar 字体颜色和字体大小
效果图 代码如下// 在第一个控制器中添加如下代码self.title = "改变字体颜色" tabBarItem.image = UIImage(named: "home_black_icon") tabBarItem.selectedImage = UIImage(named: "home_line_icon")?.withRenderingMode(.al
2017-06-12 20:42:34
6271
原创 Swift Navigation添加图片标题
以小黄车为示例 代码如下: titleView = UIImageView(image: UIImage(named: "ofoLogo")) navigationItem.titleView = titleView
2017-06-12 20:12:30
1124
原创 swift3 设置navigationBar的字体颜色
//设置navBar的渲染颜色 navigationBar.barTintColor = .red // 设置 navBar 的字体颜色(例如:title) navigationBar.titleTextAttributes = [NSForegroundColorAttributeName : UIColor.darkGray] //
2017-05-22 20:57:16
1541
原创 swift3 保存json到桌面,从沙盒中读取json
let data = try? JSONSerialization.data(withJSONObject: array, options: .prettyPrinted) (data as NSData).write(toFile: "/Users/mac/Desktop/demo.json", atomically: true)从沙盒中读取json文件// 0. 获取沙盒 jso
2017-05-22 20:48:03
1944
原创 swift3 设置设备方向支持(supportedInterfaceOrientations)
1、改变整个app的设备方向支持 2、代码改变app不同场景的设备旋转方向支持(可以在不同的viewController中处理对设备方向的不同需求)override var supportedInterfaceOrientations: UIInterfaceOrientationMask{ return .portrait }设置之后当前的控制器和子控制器都会遵守这个
2017-05-22 20:10:46
5712
原创 swift3 tableView刷新数据
在UITableViewController中存在一个刷新控件refreshController,利用这个刷新控件可以实现对tableView数据的刷新。 1、实例化一个refreshController 实例化一个refreshController调用的是init()这个构造函数,因为在使用这个构造函数的时候会默认生成默认的一个frame。 2、将refreshContr
2017-05-22 19:40:15
5232
转载 Swift3 UIImage、Data、PNG图片之间的转换
PNG图片转UIImagelet image = UIImage(named :"PNG图片名.png")UIImage转Datalet data = UIImagePNGRepresentation( image )Data转UIImagelet image = UIImage(data : data)
2017-05-17 19:31:15
12667
原创 swift3 访问相册和摄像头
第一步:需要在项目中的Info.plist中添加相应的键 访问相册:Privacy - Photo Library Usage Description 访问摄像头:Privacy - Camera Usage Description 它们对应的值可以随意填写,但是其值是显示给用户的信息 第二步:请求访问 这个例子中一整个图片添加是一个Button点击
2017-05-10 11:07:11
2181
原创 swift3 实现键盘弹出视图上移
第一步:在你要实现这个功能的视图控制器中的viewDidload()中添加一个要监听的通知(这里为键盘上弹通知)func addObserver(_ observer: Any, selector aSelector: Selector, name aName: NSNotification.Name?, object anObject: Any?)在这个方法中添加通知Notificati
2017-05-10 10:42:59
4605
原创 swift 显示3D地图
在ios中设置3D地图需要添加一个“摄影机” ,“摄影机”是摄影机类 MKMapCamera 为了支持3D地图 MKMapView中添加了camera属性 , 该属性是MKMapCamera类型“摄像机”有如下5个重要属性centerCoordinate。设置地图的中心坐标distance。从摄像机到中心坐标的距离pitch。摄像机的俯视角,0º为垂直与地图 , 90º为
2017-05-08 21:07:05
761
原创 swift 初用地图
在IOS中地图应用开发主要使用 MapKit APi 其核心类是 MKMapView 类最终结果在使用这个类之前必须在项目中打开地图访问权限步骤:打开项目 选择 TARGETS 选择Capabilities选项卡 找到Maps 在开关处打开打开之后就会发现做左侧的项目导航栏中多了一个Frameworks(框架) 其中有有关MapKit的框架首
2017-05-08 20:06:55
776
原创 swift 转场
IB实现转场一:实现按下一个按钮跳转到另一个视图。(正向转场)第一步:打开 Main.storyboard 选择你需要点击的按钮 ,右键拖动按钮,会产生一条线 , 将这条线拖到你需要跳转到的视图 , 松开右键 ,在弹出的选项框中选择你需要跳转的方式(以present Modally 模态视图为例) , 这时运行项目,点击按钮就具有跳转到指定视图的功能.由于跳转方式选择的
2017-05-07 14:05:43
1033
转载 swift . 视图的添加及层次变动和基本动画
// 一般的我们添加一个视图到父视图都是通过 /* let v1 = UIView(frame:CGRectMake(100,200,30,50)) self.view.addSubview(v1) // self.view 代表控制器的view */这种方式添加的视图是,越后面添加
2017-05-07 13:45:24
1093
原创 Swift3 实现图片圆角、阴影、边框
一、IB实现图片圆角打开 . Main.storyboard 选择要设置圆角的 ImageView 在右侧的身份设置检查器中选择 User Defined Runtime Attributes 中添加如图所示代码其中CornerRadius表示的是圆角的半径 Type表示圆角半径的值的类型 Value表示的是圆角半径值的大小二、代码实现sel
2017-05-07 01:07:58
4068
原创 swift3 去除空白行分割线 更改分割线颜色
去除空白行分割线telf.tableView.tableFooterView = UIView(frame: CGRect.zero)更改前 更改后更改分割线颜色self.tableView.separatorColor = UIColor(white: 0.9, alpha: 1)更改前 更改后去除分割线self.tableView.sep
2017-05-06 00:03:00
775
原创 swift3 删除main.storyboard之后(纯代码做项目)
第一步:先右键删除左侧项目导航栏中的main.storyboard文件第二步:在删除了story之后此时若直接运行项目,结果会报错错误信息Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Could not find a storyboard named 'Main' 原因
2017-05-05 16:51:23
3149
原创 swift 根据文字自动计算Label大小
//方法func textSize(text : String , font : UIFont , maxSize : CGSize) -> CGSize{ return text.boundingRect(with: maxSize, options: [.usesLineFragmentOrigin], attributes: [NSFontAttributeName : f
2017-05-04 14:02:56
8231
原创 Swift3 通知的一般使用流程
通知机制与委托机制不同,前者是“一对多”的对象之间的通信,后者是“一对一”的对象之间的通信。以QQ联系人列表表头的点击事件为例,要在用户点击表头视图触发表头视图的点击事件后发生TableVIew数据刷新第一步:定一个通知名称的全局变量let reloadGroupNotificationName = NSNotification.Name(rawValue: "reloadGr
2017-05-04 13:37:47
1749
原创 Swift中自定义一个代理的一般流程
上图是委托设计模式的原理图。是一个通用类需要将自身“职责”的一部分交给其他类去做,而这一部分需要完成的“职责”则封装在委托协议里面,每一个成为委托对象的类,都必须实现委托协议里面的“职责”。一般流程首先要先写一个协议(以QQ联系人表头视图为例),在这个协议必须实现的方法headerViewDidOnClick中必须要传入一个自定义 UITableViewHeaderF
2017-05-04 12:51:52
3178
原创 自定义的UITableViewHeaderFooterView的注意要点
一、在使用代码编写UITableViewHeaderFooterView的时候,要知道在视图初始化的方法 init 中初始化是并不会为视图设置Frame,设置Frame是在tableVIew被初始化的时候进行的二、由于初始化的时候并不会给视图设置Frame,所以在有子视图的情况下,无法在初始化的时候给子视图设置相对于UITableViewHeaderFooterView视图的大小,因此需要在
2017-05-03 21:01:47
7106
原创 Swift3 QQ联系人列表
最终效果:第一步:搭建一个基础的界面首先在main.storyboard中拖拽一个tableViewController,并且身份设置检查器中的Class设置为已经继承UITableViewController的ViewController分析plist文件中的内容,并且根据内容创建模型创建一个Friend类、一个FriendGroup类,并且让它们都继
2017-05-03 19:08:55
1031
转载 layoutSubviews在什么情况下调用
1.在以下情况都会调用1.直接调用[self setNeedsLayout];(这个在上面苹果官方文档里有说明)2.addSubview的时候。3.当view的size发生改变的时候。4.滑动UIScrollView的时候。5.旋转Screen会触发父UIView上的layoutSubviews事件。注意:当view的size的值为0的时候,addSubview也不会调用layou
2017-05-03 14:41:05
1039
转载 [Swift]WKWebView用法介绍
WKWebView的优势:1)WKWebview在性能、稳定性上和UIwebview相比2)WKWebView更多的支持HTML5的特性3)WKWebView更快,占用内存可能只有UIWebView的1/3 ~ 1/44)WKWebView高达60fps的滚动刷新率和丰富的内置手势(Built-in gestures)5)WKWebView具有Safari相同的Java
2017-04-24 20:10:57
3106
转载 UINavigationItem和UItabBarItem的区别详解
一、UINavigationItem1> 获得方式self.navigationItem // self是指控制器 2> 作用可以用来设置当前控制器顶部导航栏的内容// 设置导航栏中间的内容self.navigationItem.titleself.navigationItem.titleView 二、UIBarBut
2017-04-23 10:55:18
561
转载 谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词
标题 谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词 选择自 fmddlmyy 的 Blog关键字 谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词这是一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级。整理这篇文章的动机是两个问题:问题一:使用Windows记
2017-03-22 19:33:50
384
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人