随笔分类 - iOS
iOS Dev
摘要:0. 背景: 在iOS开发中,Auto Layout(自动布局)能解决大部分的屏幕适配问题。 但是当iPhone 6和iPhone 6 Plus发布以后, Auto Layout已经不能解决复杂的屏幕适配问题了, 因此, 在iOS 8以后苹果推出了Size Class, 它是基于Auto Layou
阅读全文
摘要:1. Frame 每个视图都有一个frame属性,它是CGRect结构,它描述了视图所在的矩形在其父视图中的位置。 (屏幕坐标系默认的原点在左上角,x轴向右伸展,y轴向下伸展) 设置frame通常通过视图的指定初始化器initWithFrame 下面来看个例子,该例子初始化了3个相互叠加的矩形区域
阅读全文
摘要:【解决方法】设置 Build Settings —-> Use Legacy Swift Language Version —-> 改为YES
阅读全文
摘要:1. 什么是Content hugging priority 你可以把它想象成一根放在视图上的橡皮筋。 这根橡皮筋会组织视图超过它本身的固有大小(intrinsic content size)。 它存在一个优先级,从0到1000。 1000表示视图绝对不能超过intrinsic content si
阅读全文
摘要:1. init(coder:) 它是视图控制器从故事板创建实例的默认初始化函数。(It is the initializer for UIViewController instances created from a storyboard.) 它在整个生命周期中只被调用1次。 2. init(nib
阅读全文
摘要:(Swift) (Objective-C) (Swift) (Objective-C)
阅读全文
摘要:(Swift) (Objective-C)
阅读全文
摘要:(Swift) (Objective-C)
阅读全文
摘要:(Swift) (Objective-C)
阅读全文
摘要:1. 初始化加载到视图界面 (Swift) (Objective-C) 2. 设置开关状态 (Swift) (Objective-C) 3. 判断开关状态 (Swift) (Objective-C) 4. 添加事件监听 (Swift) (Objective-C) 5. 定制开关UI
阅读全文
摘要:解决方案: (Swift) 使用UIAlertController类 (Objective-C) 使用UIAlertView类 代码: (Swift) (Objective-C)
阅读全文
摘要:一谈到Autolayout,初学者肯定想到的是IB中使用拖拽啊,pin啊各种鼠标操作来进行添加各种约束。 今天我们要聊得是如何利用代码来添加视图间的约束。 我们来看一个例子: (Objective-C代码) (Swift代码 iOS9) 运行效果: (竖屏) (横屏) 看了以上代码后,你肯定要疯了,
阅读全文
摘要:视图有一个transform属性,它描述了应该如何绘制该视图。 该属性是CGAffineTransform结构体,它代表了3 x 3的变换矩阵(线性代数)。 下面的代码让两个矩形视图旋转45度 (Objective-C代码) (Swift代码 iOS9) 记住:对父视图进行转换,子视图会跟着动。 运
阅读全文
摘要:如何创建一个空的项目,最早的时候XCode的项目想到中,还有Empty Application template这个选项,后来Apple把它 给去掉了。 我们创建一个单视图项目。 1) 删除main.storyboard 2) 删除ViewController相关文件 3) 删除AppDelegat
阅读全文
摘要:1. 什么是视图? 视图显示为手机上的一块矩形区域,管理该区域的所有屏幕显示,它是UIView或者UIView的子类。 视图既可以从xib生成,也可以用代码生成。 2. 窗口 窗口是UIWindow或者它的子类。 视图结构的顶层便是app的窗口。 窗口必须充满设备的屏幕,因此,必须设置窗口的fram
阅读全文
摘要:理解应用的状态对于我们开发iOS大有裨益。 当前应用所处什么状态,什么促使它在各个状态间进行过渡,你的代码又是如何 唤醒这些过渡,等等等等。 先请看下图: 1. 当应用出于非运行状态时,它处于图中的"Not Running"状态,它不执行任何代码,也不消耗任何内存。 2. 用户启动应用后,进入"Ac
阅读全文
摘要:1. 拖线 按住Control键,用鼠标从源控制器的某个控件开始,拖动到目的控制器 2. 选择弹出类型并设置Segue Identifier 在弹出的对话框中,选择“Selection Segue->Show” 见下图 设置Segue Identifier 3. 在目的视图控制器中设置接收桩 4.
阅读全文
摘要:有时候系统显示的键盘会挡住视图中某些重要的控件,这个时候当用户按下换行键,就应该取消UITextField对象的第一响应(First Responder)状态而关闭键盘。 1. 首先,视图控制器必须遵守UITextFieldDelegate协议 2. 然后,需要再视图控制器中实现textFieldS
阅读全文
摘要:相同点: 他们都是CGRect类型,且拥有属性origin(x, y), size(weight, height) 不同点: bounds是你画的视图的边界,和父视图没有半毛钱关系 frames则一定是相对于父视图而言的 在通常情况下他们是相似的,但是特殊情况,比如旋转的时候,他们就不一样了 广说太
阅读全文
摘要:UITableViewAutomaticDimension is the default value for rowHeight, it is useful for understanding what is going on. Setting theestimatedRowHeight prope
阅读全文