iOS-技术细节整理
遇到未使用类,可以看看xcode->help->developer documentation
下面做一下简单的技术细节整理
Auto Layout
使用Auto Layout来灵活改变UI elements,使得各个元素可以使用不同尺寸、翻转状态的屏幕。红线表示还有未声明的约束。
术语:
leading trailing top bottom 左右上下
margin边界
建立storyboard与viewcontroller
联系建立后,viewcontroller中的代码名称不可修改,否则无法索引
添加viewcontroller控件
建立storyboard与viewcontroller之间的联系,与viewcontroller自定义类绑定;
可以在attribute inspector中设置 is initial view controller,即为app的entry point
*Button
直接添加action响应函数
*slider
直接添加action响应函数(event: value changed)
*显示提示信息
舍弃UIAlertView,需要使用UIAlertController
UIAlertController
可以设置title、message,可以添加UIAlertAction
使用viewcontroller的present显示(alert是模态视图)
func present(UIViewController, animated: Bool, completion: (() -> Void)? = nil)
Presents a view controller modally.
UIAlertAction
An action that can be taken when the user taps a button in an alert.
原本的提示框转到了界面下方的模态视图
模态视图理解为一个浮动在原先视图上的一个临时性的视图或者界面
note:模态视图
覆盖于原有view之上的临时图层
*访问相机和照片
info中添加key Privacy - Camera Usage Description
建立ui和viewcontroller的联系(outlet、action)
Outlets let you refer to your interface elements in code, but you still need a way to respond whenever the user interacts with the elements. That’s where actions come in.
event-driven programming
iOS apps are based on event-driven programming. That is, the flow of the app is determined by events: system events and user actions.
target-action pattern
target-action pattern in iOS app design. Target-action is a design pattern where one object sends a message to another object when a specific event occurs.
for example:
The event is the user tapping the Set Default Text button.
The action is setDefaultLabelText(_).
The target is ViewController (where the action method is defined).
The sender is the Set Default Label Text button.
The system sends the message by calling the action method on the target and passing in the sender object. The sender is usually a control—such as a button, slider, or switch—that can trigger an event in response to user interaction such as a tap, drag, or value change.
delegate
Any object can serve as a delegate for another object as long as it conforms to the appropriate protocol.
textfield的delegate可以实现以下响应
func textFieldDidEndEditing(_ textField: UITextField) {
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
}
first responder
When the user taps a text field, it automatically becomes the first responder. In an app, the first responder is an object that is first on the line for receiving many kinds of app events, including key events, motion events, and action messages, among others. In other words, many of the events generated by the user are initially routed to the first responder.
When a user wants to finish editing the text field, the text field needs to resign its first-responder status. Because the text field will no longer be the active object in the app, events need to get routed to a more appropriate object.
tips
使用注释//MARK:、function menu快速索引
//MARK: Properties
//MARK: Actions
Functions menu
In Xcode, a jump menu that lets you navigate directly to a specific declaration or section in a source code file.
iOS-技术细节整理的更多相关文章
- iOS资源整理
开发类库 http://www.code4app.com/thread-7831-1-1.html Github-iOS备忘 http://github.ibireme.com/github/list ...
- iOS Socket 整理以及CocoaAsyncSocket、SRWebSocket源码解析(一)
写在准备动手的时候: Socket通讯在iOS中也是很常见,自己最近也一直在学习Telegram这个开源项目,Telegram就是在Socket的基础上做的即时通讯,这个相信了解这个开源项目的也都知道 ...
- iOS开发--整理常用的第三方资源
一:第三方插件 1:基于响应式编程思想的oc 地址:https://github.com/ReactiveCocoa/ReactiveCocoa 2:hud提示框 地址:https://github. ...
- iOS 动画整理
序列帧动画 曾经项目里的一段源码: 1234567891011121314 UIImageView * activityImageView = [[UIImageView alloc] init];N ...
- iOS适配整理
iOS12适配问题 1.StatusBar内部结构改变 现象:crash crash log: -[_UIStatusBarIdentifier isEqualToString:]: unrecogn ...
- 【iOS】iOS CocoaPods 整理
github 上下载 Demo 时第一次遇到这个情况,当时有些不知所措,也没怎么在意,后来项目调整结构时正式见到了这个,并且自己去了解学习了. CocoaPods安装和使用教程 这篇文章写得很好!ma ...
- iOS runtime整理
iOS利用Runtime自定义控制器POP手势动画 http://www.cocoachina.com/ios/20150401/11459.html Objective C运行时(runtime) ...
- iOS设计规范整理|汇总
来源 UI中国
- Mysql相关技术细节整理
一.错误日志相关 1.mysql错误日志所在位置 windows下,错误日志文件一般在安装目录下的data目录下.扩展名是.err的文件,也可以打开安装目录下的my.ini文件检查一下linux下,错 ...
- iOS错误整理--自定义按钮,给按钮内部赋值出现的错误
一.练习中为了实现自定义按钮,按钮中的imageView和titleLabel默认是左右排列的.在练习中自定义为上下排列. *在以下方法中重新布局按钮中的子控件 - (void)layoutSubvi ...
随机推荐
- Storm 中drpc调用
package storm.starter; import backtype.storm.Config; import backtype.storm.LocalCluster; import back ...
- MapFile
MapFile是排序后的SequenceFile, 这个排序是由开发者来保证的, 不是内存实现. 相当于对key作了一个分块索引, 只针对key. 缺点 1.文件不支持复写操作,不能向已存在的Seq ...
- datagrid中设置编辑,删除列是否可以访问
foreach (RepeaterItem Item in rpt_Result.Items) { LinkButton edit = (LinkButton)Item.FindControl(&qu ...
- C#实现打印
C#实现导出pdf文件,打印 using System; using System.Collections.Generic; using System.Linq; using System.Web; ...
- c# 开发可替换的通用序列化库
开篇继续吹牛.... 其实没有什么可吹的了,哈哈哈哈哈 主要是写一个通用库,既可以直接用,又方便替换,我的序列化都是采用第三方的哈. 我不上完整代码了,只是给大家讲讲过程. 1.写一个序列化的类,我是 ...
- 【剑指offer】 Java实现重建二叉树
GitHub上的代码链接 /** * @Author: DaleyZou * @Description: 重建二叉树 * 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树. * 假设输入的前序 ...
- [USACO11OPEN]奶牛跳棋Cow Checkers(博弈论)
题目描述 One day, Bessie decides to challenge Farmer John to a game of 'Cow Checkers'. The game is playe ...
- ABAP术语-Event
Event 原文:http://www.cnblogs.com/qiangsheng/archive/2008/01/31/1059588.html Occurrence of a change of ...
- CacheCloud+Redis Cluster 3部署
CacheCloud环境需求 Java 7 Maven 3 MySQL Redis 3 具体用法可参考:https://cachecloud.github.io 1.下载CacheCloud 官网ht ...
- filter-policy和AS-PATH-FILTER过滤BGP路由条目
Filter-policy过滤BGP路由条目 一:根据项目需求搭建好拓扑图如下: 二:配置 1:对项目图做理论分析,首先RT1和RT2属于EBGP(不同自治系统之间的直连路由),而RT2和RT3属于I ...