遇到未使用类,可以看看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-技术细节整理的更多相关文章

  1. iOS资源整理

    开发类库 http://www.code4app.com/thread-7831-1-1.html Github-iOS备忘 http://github.ibireme.com/github/list ...

  2. iOS Socket 整理以及CocoaAsyncSocket、SRWebSocket源码解析(一)

    写在准备动手的时候: Socket通讯在iOS中也是很常见,自己最近也一直在学习Telegram这个开源项目,Telegram就是在Socket的基础上做的即时通讯,这个相信了解这个开源项目的也都知道 ...

  3. iOS开发--整理常用的第三方资源

    一:第三方插件 1:基于响应式编程思想的oc 地址:https://github.com/ReactiveCocoa/ReactiveCocoa 2:hud提示框 地址:https://github. ...

  4. iOS 动画整理

    序列帧动画 曾经项目里的一段源码: 1234567891011121314 UIImageView * activityImageView = [[UIImageView alloc] init];N ...

  5. iOS适配整理

    iOS12适配问题 1.StatusBar内部结构改变 现象:crash crash log: -[_UIStatusBarIdentifier isEqualToString:]: unrecogn ...

  6. 【iOS】iOS CocoaPods 整理

    github 上下载 Demo 时第一次遇到这个情况,当时有些不知所措,也没怎么在意,后来项目调整结构时正式见到了这个,并且自己去了解学习了. CocoaPods安装和使用教程 这篇文章写得很好!ma ...

  7. iOS runtime整理

    iOS利用Runtime自定义控制器POP手势动画 http://www.cocoachina.com/ios/20150401/11459.html  Objective C运行时(runtime) ...

  8. iOS设计规范整理|汇总

    来源 UI中国

  9. Mysql相关技术细节整理

    一.错误日志相关 1.mysql错误日志所在位置 windows下,错误日志文件一般在安装目录下的data目录下.扩展名是.err的文件,也可以打开安装目录下的my.ini文件检查一下linux下,错 ...

  10. iOS错误整理--自定义按钮,给按钮内部赋值出现的错误

    一.练习中为了实现自定义按钮,按钮中的imageView和titleLabel默认是左右排列的.在练习中自定义为上下排列. *在以下方法中重新布局按钮中的子控件 - (void)layoutSubvi ...

随机推荐

  1. 开发工具--Eclipse使用及常见问题解决

    怎么查询Eclipse版本号: 方法一: 方法二: Eclipse安装目录下面找到readme文件夹,里边有个网页打开就可以看到当前版本; Eclipse汉化改为英文: Eclipse Mybatis ...

  2. 动态规划(一)POJ1163

    动态规划算法是比较实用的算法之一,结合实际问题能更好的熟悉这个算法 下面以POJ1163为例子 1. 首先是题目大意 :在给定的一个数字三角形中找到一条自上而下的路径,路径每一步只能左下或者右下,最后 ...

  3. chromium之pickle

    pickle谷歌翻译成泡菜 醉了,看一下头文件的说明 // This class provides facilities for basic binary value packing and unpa ...

  4. eventlet详解

    正真工作才发现很懒,没这么多时间写文,毕竟小白,参照大神写的,不喜勿喷 1.eventlet是什么eventlet - 具有WSGI支持的异步框架eventlet是python库函数,一个是处理和网络 ...

  5. python实现归并排序,归并排序的详细分析

    python实现归并排序,归并排序的详细分析.   学习归并排序的过程是十分痛苦的.它并不常用,看起来时间复杂度好像是几种排序中最低的,比快排的时间复杂度还要低,但是它的执行速度不是最快的.很多朋友不 ...

  6. Post 和 Get的区别?

    Post方法: 1. POST 请求的数据不会被缓存 2. Post请求的内容放置在HTML header中,用户是看不到这个过程的.所以是比较安全的 3. Post请求的数据大小没有限制 Get方法 ...

  7. 4.2 执行环境及作用域【JavaScript高级程序设计第三版】

    执行环境(execution context,为简单起见,有时也称为“环境”)是JavaScript 中最为重要的一个概念.执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为.每个执行环 ...

  8. python网络编程的坑(持续更新)

    初学python,踩了许多坑...每天都学一点吧..(大佬绕过) 1.session的用法: session是python requests库中的一个重要功能.session可以存储用户的数据并且存储 ...

  9. GDOI DAY1游记

    今天,是本蒟蒻的第一次参加GDOI,真激动! 今天,是GDOI第一天,昨天熬夜打代码,今天早上状态十分不好,于是... 进入了考场,叫我们自由打一会代码,于是...打了一坨AC机,重要的是错了(额.. ...

  10. 打印N个真值的所有真值组合

    例:N=2 (true,true),(false,true),(true,false),(false,false) #include<stdio.h> int count=0; void ...