自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 Swift UIGestureRecognizer介绍

UIGestureRecognizer UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,使用它的子类才能等到具体手势 UITapGestureRecognizer 敲击UIPinchGestureRecognizer 捏合,用于缩放UIPanGestureRecognizer 拖拽UISwipeGestureRecognizer 轻扫UIRot

2017-10-20 11:17:22 6012

原创 Swift UIMenuController的简单运用和简单自定义

认识系统 UIMenuController * 创建系统 UIMenuController// 要让添加 menu 的目标控件成为第一响应者,否则某些功能会错乱,例如 label 未成为第一响应者但是 label 的 menu 有 paste 功能会直接 paste 到第一响应者上 label.becomeFirstResponder() // 由于系统只允许一个

2017-10-14 17:51:35 2866

原创 oc 深拷贝和浅拷贝

深拷贝和浅拷贝 深拷贝 : 拷贝出来的对象与源对象地址不一致! 这意味着我修改拷贝对象的值对源对象的值没有任何影响.浅拷贝 : 拷贝出来的对象与源对象地址一致! 这意味着我修改拷贝对象的值会直接影响到源对象.

2017-07-26 15:07:02 526

原创 OC 属性的内存管理

属性(@property)的内存管理assign: assign一般用来修饰基本数据类型 int 、 float (基础类型没有引用关系)意义:如果这个用assign属性修饰的property代表一个指向对象的指针,那么当这个指针指向某个对象时,这个对象的引用计数不应该被改变。也就是说,用assign属性修饰的property,不应该持有一个对象。因为这个property不持有对象,所以它所指向

2017-07-26 15:04:34 399

原创 OC 空指针和野指针

空指针 : 没有存储任何内存地址的指针就称为空指针(NULL指针)。2.被赋值为nil的指针,在没有被具体初始化之前,为nil。nil、Nil、NULL、NSNULL的含义和区别 nil:OC中的对象的空指针Nil:OC中类的空指针NULL:C类型的空指针NSNull:数值类的空对象野指针 1.”野指针”不是nil指针,是指向”垃圾”内存(不可用内存 如:内存被销毁的时候)的指针。

2017-07-26 14:42:05 960

原创 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 971

原创 Swift 系统Modal转场样式

效果图: 默认: crossDissolve效果: flipHorizontal效果: partialCurl效果: 代码更改动画效果://设置转场动画效果 let testVC = TestViewController() // 设置控制器的 modalTransitionStyle 改变转场效果 testVC.modalTra

2017-06-13 10:48:45 450

原创 Swift 限制 TextField 输入字符数量

效果图 方法: /// 限制 textField 字符输入数量 /// /// - Parameters: /// - textField: 用户输入的textField /// - range: 例如粘贴或者选中一段文字所占用的范围 /// - string: 用户将要输入的字符 /// - Returns: 是否允许用户输入到

2017-06-12 21:37:27 7856

原创 Swift 开启手电筒

第一步:导入AVFoundation 第二步:获取到用户使用的设备 第三步:判断用户设备是否具有闪光灯,并且可用import AVFoundationfunc openTorch(){ guard let device = AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeVideo) else {

2017-06-12 21:14:14 1419

原创 Swift 毛玻璃效果

关闭前 关闭后 代码如下:// 是否开启毛玻璃效果navigationController?.navigationBar.isTranslucent = true黑色半透明样式 代码如下navigationController?.navigationBar.barStyle = .blackTranslucent

2017-06-12 20:58:22 981

原创 Swift 设置navigationBar的title字体大小和字体颜色

代码如下:title = "测试字体" navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.orange, NSFontAttributeNa

2017-06-12 20:50:41 6302

原创 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 6015 3

原创 Swift Navigation添加图片标题

以小黄车为示例 代码如下: titleView = UIImageView(image: UIImage(named: "ofoLogo")) navigationItem.titleView = titleView

2017-06-12 20:12:30 1069

原创 swift3 设置navigationBar的字体颜色

//设置navBar的渲染颜色 navigationBar.barTintColor = .red // 设置 navBar 的字体颜色(例如:title) navigationBar.titleTextAttributes = [NSForegroundColorAttributeName : UIColor.darkGray] //

2017-05-22 20:57:16 1503

原创 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 1863

原创 swift3 设置设备方向支持(supportedInterfaceOrientations)

1、改变整个app的设备方向支持 2、代码改变app不同场景的设备旋转方向支持(可以在不同的viewController中处理对设备方向的不同需求)override var supportedInterfaceOrientations: UIInterfaceOrientationMask{ return .portrait }设置之后当前的控制器和子控制器都会遵守这个

2017-05-22 20:10:46 5531

原创 swift3 tableView刷新数据

在UITableViewController中存在一个刷新控件refreshController,利用这个刷新控件可以实现对tableView数据的刷新。 1、实例化一个refreshController 实例化一个refreshController调用的是init()这个构造函数,因为在使用这个构造函数的时候会默认生成默认的一个frame。 2、将refreshContr

2017-05-22 19:40:15 5091

转载 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 12484

原创 swift3 访问相册和摄像头

第一步:需要在项目中的Info.plist中添加相应的键 访问相册:Privacy - Photo Library Usage Description 访问摄像头:Privacy - Camera Usage Description 它们对应的值可以随意填写,但是其值是显示给用户的信息 第二步:请求访问 这个例子中一整个图片添加是一个Button点击

2017-05-10 11:07:11 2097

原创 swift3 实现键盘弹出视图上移

第一步:在你要实现这个功能的视图控制器中的viewDidload()中添加一个要监听的通知(这里为键盘上弹通知)func addObserver(_ observer: Any, selector aSelector: Selector, name aName: NSNotification.Name?, object anObject: Any?)在这个方法中添加通知Notificati

2017-05-10 10:42:59 4309 1

原创 swift 显示3D地图

在ios中设置3D地图需要添加一个“摄影机”  ,“摄影机”是摄影机类  MKMapCamera   为了支持3D地图 MKMapView中添加了camera属性  , 该属性是MKMapCamera类型“摄像机”有如下5个重要属性centerCoordinate。设置地图的中心坐标distance。从摄像机到中心坐标的距离pitch。摄像机的俯视角,0º为垂直与地图 , 90º为

2017-05-08 21:07:05 657

原创 swift 初用地图

在IOS中地图应用开发主要使用   MapKit APi  其核心类是   MKMapView 类最终结果在使用这个类之前必须在项目中打开地图访问权限步骤:打开项目  选择 TARGETS   选择Capabilities选项卡  找到Maps   在开关处打开打开之后就会发现做左侧的项目导航栏中多了一个Frameworks(框架)  其中有有关MapKit的框架首

2017-05-08 20:06:55 707

原创 swift 转场

IB实现转场一:实现按下一个按钮跳转到另一个视图。(正向转场)第一步:打开   Main.storyboard    选择你需要点击的按钮 ,右键拖动按钮,会产生一条线 , 将这条线拖到你需要跳转到的视图 , 松开右键 ,在弹出的选项框中选择你需要跳转的方式(以present Modally  模态视图为例) , 这时运行项目,点击按钮就具有跳转到指定视图的功能.由于跳转方式选择的

2017-05-07 14:05:43 997

转载 swift . 视图的添加及层次变动和基本动画

// 一般的我们添加一个视图到父视图都是通过 /* let v1 = UIView(frame:CGRectMake(100,200,30,50)) self.view.addSubview(v1) // self.view 代表控制器的view */这种方式添加的视图是,越后面添加

2017-05-07 13:45:24 1012

原创 Swift3 实现图片圆角、阴影、边框

一、IB实现图片圆角打开 .    Main.storyboard   选择要设置圆角的  ImageView   在右侧的身份设置检查器中选择   User Defined Runtime Attributes  中添加如图所示代码其中CornerRadius表示的是圆角的半径    Type表示圆角半径的值的类型     Value表示的是圆角半径值的大小二、代码实现sel

2017-05-07 01:07:58 3985

原创 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 726

原创 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 3071

原创 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 8140

原创 Swift3 通知的一般使用流程

通知机制与委托机制不同,前者是“一对多”的对象之间的通信,后者是“一对一”的对象之间的通信。以QQ联系人列表表头的点击事件为例,要在用户点击表头视图触发表头视图的点击事件后发生TableVIew数据刷新第一步:定一个通知名称的全局变量let reloadGroupNotificationName = NSNotification.Name(rawValue: "reloadGr

2017-05-04 13:37:47 1690

原创 Swift中自定义一个代理的一般流程

上图是委托设计模式的原理图。是一个通用类需要将自身“职责”的一部分交给其他类去做,而这一部分需要完成的“职责”则封装在委托协议里面,每一个成为委托对象的类,都必须实现委托协议里面的“职责”。一般流程首先要先写一个协议(以QQ联系人表头视图为例),在这个协议必须实现的方法headerViewDidOnClick中必须要传入一个自定义            UITableViewHeaderF

2017-05-04 12:51:52 3117

原创 自定义的UITableViewHeaderFooterView的注意要点

一、在使用代码编写UITableViewHeaderFooterView的时候,要知道在视图初始化的方法 init  中初始化是并不会为视图设置Frame,设置Frame是在tableVIew被初始化的时候进行的二、由于初始化的时候并不会给视图设置Frame,所以在有子视图的情况下,无法在初始化的时候给子视图设置相对于UITableViewHeaderFooterView视图的大小,因此需要在

2017-05-03 21:01:47 7032

原创 Swift3 QQ联系人列表

最终效果:第一步:搭建一个基础的界面首先在main.storyboard中拖拽一个tableViewController,并且身份设置检查器中的Class设置为已经继承UITableViewController的ViewController分析plist文件中的内容,并且根据内容创建模型创建一个Friend类、一个FriendGroup类,并且让它们都继

2017-05-03 19:08:55 963

转载 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 983

转载 [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 3023

转载 UINavigationItem和UItabBarItem的区别详解

一、UINavigationItem1> 获得方式self.navigationItem // self是指控制器 2> 作用可以用来设置当前控制器顶部导航栏的内容// 设置导航栏中间的内容self.navigationItem.titleself.navigationItem.titleView 二、UIBarBut

2017-04-23 10:55:18 516

转载 谈谈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 333

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除