自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 swift之属性观察 (willSet和didSet)

属性观察器控制和响应属性的变化,当属性被设置的时候回调用属性观察器,主要有以下几个特点:属性改变之前触发willSet方法,属性改变之后触发didSet方法在给属性添加观察者之前必须要明确申明属性的类型,否则编译器会报错属性初始化时,willSet和didSet都不会调用,只有在设置属性值时才会调用当设置的值和原来的值一样时,willSet和didSet也会被调用willSet有一个

2017-10-31 09:51:37 482

原创 UI工具-阿里巴巴矢量图标库

各种UI图库:点击打开链接

2017-10-27 14:38:29 2283

转载 UITableview布局 消除顶部空白contentInset

UITableview布局 消除顶部空白contentInset1. 现象在使用tableview的时候,你是否遇到下面的问题,如下图左边,将一个tableview加入到self.view中,设置其frame的y值为导航栏家状态栏高度64,self.view的背景色为红色,tableview的背景色为黄色,tableviewcell的背景色为绿色。运行的结果是:tablev

2017-10-26 17:23:43 738

转载 iOS学习资源汇总 - 开源项目、第三方库、技术博客

前言Github众所周知,全球最大的同性社区交友网站,在这里你可以获取任何你想要的,只要你想,只要Ta有。从事开发几年在Github上Star了不少好的东西,当然学到了更多,在此深深的膜拜下那些开源的大神。切入正题,下面对自己使用过或者Star过的第三方框架整理下,便于日后查阅,也方便他人借鉴,如果大家有什么好的库推荐,欢迎在本文下方评论,本篇文章不定时更新...戳这里----->已上传

2017-10-25 11:42:38 518

转载 swift 获取app、ios 版本号及设备信息

func versionCheck(){ let infoDictionary = NSBundle.mainBundle().infoDictionary let appDisplayName:AnyObject? = infoDictionary["CFBundleDisplayName"] //程序名称 let majorVersion :AnyObject? = i

2017-10-25 09:43:30 511

转载 Swift3.0获取APP版本号,提示用户升级

获取当前版本号(版本号是字符串)Swift2.3:let currentVersion = NSBundle.mainBundle().infoDictionary!["CFBundleShortVersionString"] as! StringSwift3.0:let currentVersion = Bundle.main.infoDictionary!["CFBundleSho

2017-10-25 09:38:53 464

转载 swift - enumerated()

Swift 标准库里最容易被滥用的就是 Sequence 的 enumerated() 函数。这个函数会返回一个新的序列,包含了初始序列里的所有元素,以及与元素相对应的编号。enumerated() 很容易被误解。因为它给每一个元素都提供了一个编号,对于很多问题来说这是一个很简便的方案。然而,这些问题大多数都可以被另一种方式更好的解决,让我们来看一下其中的一些例子吧,要注意理解它们有什么问题,

2017-10-24 10:17:22 6188

原创 优秀工程师-UITextField

lazy var inputUserText:UITextField={        let  TextField = UITextField.init()                TextField.placeholder = "请输入用户名"        TextField.backgroundColor = UIColor.white        TextFi

2017-10-23 17:41:24 228

原创 快速修改导航栏的返回图片

override func viewDidLoad() {        super.viewDidLoad()        self.title = ""        let backButton = UIButton.init(frame: CGRect(x:0,y:0,width:20,height:15))        backButton.setImage(UIIm

2017-10-23 17:39:13 510

转载 swift中下划线怎么用

swift中的下划线,可以用于忽略外部参数名,一般第一个参数的外部名是被自动忽略的。 代码如下//用下划线前func myFunc(name: String, age: Int = 20, grade: Int = 2){ println("add: name = \(name), age = \(age), grade = \(grade)")}myFunc(name:

2017-10-20 11:00:38 816

转载 优秀工程师-layoutSubviews相关方法

一、 与之相关的方法- (void)layoutSubviews- (void)layoutIfNeeded- (void)setNeedsLayout1.layoutSubviews 重新布局  这个方法是对自己的子控件进行重新布局一般在这个方法里,我们设置子视图的frame,切记要调用其父类方法[superlayoutSubviews]一般的情况下是

2017-10-20 10:08:29 263

转载 swift-可选类型Optional

Swift 引入的 Optional,很好的解决了 Objective-C 时代 “nil or not nil” 的问题,配合 Type-Safe 特性,帮我们减少了很多隐藏的问题。下面让我们通过源码来了解一下 Optional 具体的实现逻辑。初识 OptionalSwift 中的 Optional 想要表达的涵义更多是“有没有”,而非“空不空”,因此在 Swift 中,对 nil

2017-10-19 14:38:01 543

转载 优秀工程师-UIImagePickerController

UIImagePickerController是iOS系统提供的和系统的相册和相机交互的一个类,可以用来获取相册的照片,也可以调用系统的相机拍摄照片或者视频。该类的继承结构是:UIImagePickerController-->UINavigationController-->UIViewController-->UIResponder-->NSObject官方文档中对于该类的说明是: 该

2017-10-18 14:16:52 262

转载 优秀工程师-UIResponder

在iOS中UIResponder类是专门用来响应用户的操作处理各种事件的,包括触摸事件(Touch Events)、运动事件(Motion Events)、远程控制事件(Remote Control Events,如插入耳机调节音量触发的事件)。我们知道UIApplication、UIView、UIViewController这几个类是直接继承自UIResponder,UIWindow是直接继承自

2017-10-18 14:14:21 220

转载 CocoaPods安装和使用教程

CocoaPods安装和使用教程     这篇文章

2017-10-17 13:17:07 297

转载 优秀工程师-UICollectionView

前言这几天有时间看了下UICollectionView的东西,才发觉它真的非常强大,很有必要好好学习学习。以前虽然用过几次,但没有系统的整理总结过。这两天我为UICollectionView做一个比较全面的整理。包括基本使用,自定义布局,自定义插入删除动画,自定义转场动画等几部分。好了,开始。UICollectionView相对于UITableView可以说是青出于蓝而胜于蓝,它和UITa

2017-10-17 11:12:58 221

原创 优秀工程师-UITableView

1、tableView层次 结构Snip20151026_21.png2、cellcell结构cell重用原理当滚动列表时,部分UITableViewCell会移出窗口,UITableView会将窗口外的UITableViewCell放入一个对象池中,等待重用。当UITableView要求dataSource返回UITab

2017-10-17 10:48:42 280

原创 优秀工程师-UIScrollView UIPageControl

1、UIScrollView的作用 (1)当需要展示的内容很多的时候,超过屏幕尺寸,用户需要滑动屏幕来查看内容;(2)普通的UIView不具备滚动功能;2、属性介绍(1)常用属性:1)@property(nonatomic)CGPoint   contentOffset; 这个属性⽤用来表⽰示UIScrollView滚动的位置2)@property(

2017-10-17 10:13:00 281

转载 优秀工程师-IOS开发中的CGFloat、CGPoint、CGSize和CGRect

1、数据类型:CGFloat: 浮点值的基本类型CGPoint: 表示一个二维坐标系中的点CGSize: 表示一个矩形的宽度和高度CGRect: 表示一个矩形的位置和大小typedef float CGFloat;// 32-bittypedef double CGFloat;// 64-bitstruct CGPoint { CGFloat x; C

2017-10-17 10:03:07 402

转载 iOS自动布局框架-Masonry详解

目前iOS开发中大多数页面都已经开始使用Interface Builder的方式进行UI开发了,但是在一些变化比较复杂的页面,还是需要通过代码来进行UI开发的。而且有很多比较老的项目,本身就还在采用纯代码的方式进行开发。而现在iPhone和iPad屏幕尺寸越来越多,虽然开发者只需要根据屏幕点进行开发,而不需要基于像素点进行UI开发。但如果在项目中根据不同屏幕尺寸进行各种判断,写死坐标的话,

2017-10-16 18:24:16 440

转载 常用第三方框架-Masonry(ios)和SnapKit(swift)

Masonry的简单使用首先,在正式使用Masonry之前,我们先来看看在xib中我们是如何使用AutoLayout从图中我们可以看出,只要设置相应得局限,控制好父视图与子视图之间的关系就应该很ok的拖出你需要的需求。这里就不详细讲解具体拖拽的方法.....然后,我们按着上图的属性来看看如何简单得使用Masonry这里是Masonry给我们的属性

2017-10-16 18:21:26 1320

翻译 优秀工程师-UIViewController

UIViewController的生命周期及iOS程序执行顺序:当一个视图控制器被创建,并在屏幕上显示的时候。 代码的执行顺序1、 alloc                                   创建对象,分配空间2、init (initWithNibName) 初始化对象,初始化数据3、loadView                      

2017-10-16 18:01:30 231

转载 优秀工程师0-UITabBarController

一. UITabBarController简介(一). 继承关系UITabBarController和UINavigationController类似,也继承于UIViewController,也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型的例子就是QQ、微信等应⽤。(二). 基本概念父控制器:通过标签控制器管理多个子控制器,标签控制器就称为

2017-10-16 17:59:44 254

转载 优秀工程师-UINavigationController

一、概述UINavigationController用来管理视图控制器,在多视图控制器中常用。它以栈的形式管理视图控制器,管理视图控制器个数理论上不受限制(实际受内存限制),push和pop方法来弹入弹出控制器,最多只能显示一个视图控制器,那就是处于栈顶的视图控制器。一般情况下,UINavigationController最少管理一个控制器,即最少有一个根视图控制器或者叫做栈底视图控制器。

2017-10-16 17:57:25 256

原创 优秀工程师-NSFileManager

NSFileManager是iOS中的文件管理类一、生成一个路径这是NSString的API,在string的基础上加上一个path名,生成一个路径注意:这个函数自动在前一个path的后面加上 "/" 如果后面的一个path的文件名里有 "/" 则会将 "/" 去除//stringByAppendingPathComponent 函数自动在前一个path的后面加上 "/" 如果后面

2017-10-16 16:16:11 256

原创 优秀工程师-NSNotificationCenter

最近在做平板的过程中,发现了一些很不规范的代码。偶然修复支付bug的时候,看到其他项目代码,使用通知的地方没有移除,我以为我这个模块的支付闪退是因为他通知没有移除的缘故。而在debug和看了具体的代码的时候才发现和这里没有关系。在我印象中,曾经因为没有移除通知而遇到闪退的问题。所以让我很意外,于是写了个demo研究了下,同时来讲下NSNotificationCenter使用的正确姿势。NSNo

2017-10-16 15:23:02 277

原创 开发常用工具-RGB在线转换

RGB在线转换:在线转换

2017-10-16 15:08:19 856

转载 键盘处理神奇一 IQKeyboardManager

每一个iOS应用的开发者在工作中都会遇到需要用户键盘输入数据的需求,而输入框(UITextField/UITextView)的父界面可能是普通的UIView,也可能是UIScrollView,UITableView,UICollectionView 等。而如果输入框位于屏幕的底部,弹起的键盘很可能覆盖输入框,导致用户就看不到输入结果,体验较差。IQKeyboardManager 为此应运而生,

2017-10-16 14:54:54 1971

转载 优秀工程师-NSUserDefault

NSUserDefaults是什么,有什么用处对于应用来说,每个用户都有自己的独特偏好设置,而好的应用会让用户根据喜好选择合适的使用方式,把这些偏好记录在应用包的plist文件中,通过NSUserDefaults类来访问,这是NSUserDefaults的常用姿势。如果有一些设置你希望用户即使升级后还可以继续使用,比如玩游戏时得过的最高分、喜好和通知设置、主题颜色甚至一个用户头像,那么你可以使

2017-10-16 14:25:11 227

转载 优秀工程师-KVC-KVO

KVC 与 KVO 是 Objective C 的关键概念,个人认为必须理解的东西,下面是实例讲解。Key-Value Coding (KVC)KVC,即是指 NSKeyValueCoding,一个非正式的 Protocol,提供一种机制来间接访问对象的属性。KVO 就是基于 KVC 实现的关键技术之一。一个对象拥有某些属性。比如说,一个 Person 对象有一个 na

2017-10-12 14:59:31 239

原创 优秀工程师-category和extensions

1、分类(category)使用Object-C中的分类,是一种编译时的手段,允许我们通过给一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以做到,这点和javascript中使用原型来定义属性有点类似。我们可以为一个类创建一个新的方法,而不需要在代码中编辑类定义。下面就是定义并使用分类的例子程序,通过下面代码,我们可

2017-10-12 14:39:39 256

原创 优秀工程师-UISlider

1、直接上代码:// 创建滑动条slider  UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake((SCREENWIDTH - 150) / 2, 200, 150, 20)];  [self.view addSubview:slider];  这里要注意的一点是,滑动条的高度,如果设

2017-10-12 10:42:16 248

原创 优秀工程师-UISwitch

1、直接上代码 // UISwitch的使用 默认尺寸为79 * 27。 UISwitch *oneSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(100, 120, 0, 0)];  // 设置背景色 // oneSwitch.backgroundColor = [UIColor whiteColor];  // 设置透

2017-10-12 10:26:05 240

原创 优秀工程师之—UISegmentedControl

UISegmentedControl类似于UIButton,它可以提供多个选择操作,响应事件,但是有很大的局限性,我们更多的是使用自定义的,先介绍下它的基本用法:直接上代码://初始化segmentedArray中要显示的标题NSArray *segmentedArray = [[NSArrayalloc]initWithObjects:@"1",@"2",@"3"

2017-10-12 10:00:51 213

原创 优秀的工程师更加注重基础-UIbutton

UIButton 的类型:UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 能够定义的button类型有以下6种, typedef enum { UIButtonTypeCustom = 0, 自定义风格 UIButtonTypeRoundedRect, 圆角矩形  UIBu

2017-10-12 09:28:14 583

转载 mvc和mvvm的区别

MVC做iOS开发,一直被教导一定要按MVC模式开发。可是MVC到底是神马?至少在我工作初也不懂是咋回事!如果网上一搜就是千篇一律的M是数据模型,V是视图,C是控制器。然后巴拉巴拉的讲他们之间是怎么通信的。然并无卵用!iOS的MVC展现形式还是有点特殊的,特别是controller和view紧密在一起,controller还必须负责view的展示。在服务器端,view根据model直接生成HT

2017-10-11 11:06:35 1126

转载 浅谈MVC、MVP、MVVM架构模式的区别和联系

MVC、MVP、MVVM这些模式是为了解决开发过程中的实际问题而提出来的,目前作为主流的几种架构模式而被广泛使用。一、MVC(Model-View-Controller)MVC是比较直观的架构模式,用户操作->View(负责接收用户的输入操作)->Controller(业务逻辑处理)->Model(数据持久化)->View(将结果反馈给View)。MVC使用非常广泛,比如J

2017-10-11 10:59:11 291

空空如也

空空如也

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

TA关注的人

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