网易 iOS 极客班学习笔记

日期:2019-11-07编辑作者:金沙棋牌游戏官方网站

6 View Controller


5.1 供给剖析

  • 详细摸底应用须求,须求适度掌握顾客想要的是怎样。
  • 详见安顿利用的逻辑流程,各类模块功用的缘故和去向。

8.4 移动使用的特色。

活动选择的行使会要命的散装,会在各个状态中来回切换。

<br />

5.4 Keynote 课件映现

<br />

0.2 学习方法

5 第一个 App


8.1 应用运转

  • main - 运营程序

  • UIApplicationMain() - 运转应用代理

  • UIApplication - 运营消息循环

  • 应用软件Delegate - 生成接纳代理

  • 依据 Storyboard 可能代码创造的 ViewController 加载 rootViewController

5 第一个 App


7.1 Storyboard Segue

  • 利用代码举行 Segue 跳转

    func segueAction() {
        // 0 以 Segue 跳转
        performSegueWithIdentifier("SegueIdentifier", sender: nil)
    
        // 1 获取 ViewController
        if let nextViewController = storyboard?.instantiateViewControllerWithIdentifier("ViewControllerIdentifier") {
            showViewController(nextViewController, sender: nil)
        }
    }
    
  • Segue 传值

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        // 每次有 Segue 被触发就会调用此函数,以提供传值时机。
    }
    
  • Storyboard Segue 回退

    @IBAction override func unwindForSegue(unwindSegue: UIStoryboardSegue, towardsViewController subsequentVC: UIViewController) {
        // @IBAction func unwindFuncName(segueName: UIStoryboardSegue) { }
        // 名称可以随意,参数至少要有一个 UIStoryboardSegue。用来作为 Storyboard 回退触发事件。
    }
    

iOS 实战开拓课程笔记

7.2 多 Storyboard

  • 现场景太多的时候,能够把 Storyboard 分成多少个文本。场景之间的联网,能够经过二种艺术落实。

    • Storyboard Reference 组件,跟 ViewController 组件同样能够拖动到 Canvas 上。何况能够设置它指向的 Storyboard 文件,Reference ID(倘若不点名就是 initial View Controller卡塔尔国。
    • 入选须要停放在新 Storyboard 上的 ViewController,然后点击 Editor -> Refactor to Storyboard。然后就能够创立新的 Storyboard 文件,并将入选的 ViewController 放置到中间。
  • 获取别的 Storyboard

    func muchStoryboard() {
        // 根据名称获取 Storyboard
        let storyboard = UIStoryboard(name: "StoryboardName", bundle: NSBundle.mainBundle())
    }
    

<br />

6.3 View Controller Lifecycle

6.3 View Controller Lifecycle

4.1 UIImage

  • 图形加载

  • 图表动漫

    let anmiationImage = UIImage.animatedImageNamed("ImageArrayName", duration: 2.0)
    // ImageArrayName 是动画图片的前缀,动画图片资源应该按照该名称后面加数字来命名。
    // duration 是总时长。
    // KeyNote 可以导出动画的每帧图片。
    

6.3 多个 View Controller

  • 弹出新视图的法子 presentViewController:animation:completion:

    • UIViewController 的 modalPresentationStyle 是安装弹出控制器风格的属性。
    • UIViewController 的 modalTransitionStyle 是设置弹出动漫风格的习性。
  • iOS 8+ 之后新措施 showViewController:sender

  • 自由调整器 dismissViewControllerAnimated:completion:

  • 回传数据:把父调整器作为子调整器的代办,通过回调函数来传递数据。並且由父调控器来调控子控制器的刑满释放解除劳教,实际不是子调控器本人调用 dismissViewControllerAnimated:completion: 方法。

<br />

11.4 UITableView 交互

  • 选中

  • 调节表格滚动

  • 报表编辑匡助

  • 编写方式管理进度

  • 网易 iOS 极客班学习笔记。带索引的表格

  • 目录本地化

  • 高亮与菜单

  • 报表与追寻

<br />


<br />


<br />

网易 iOS 极客班学习笔记。4.2 Assert Catalog

  • Assert Catalog 介绍

    模板会暗许生成一个 Assert Catalog 文件同一时间在那之中有 Appicon 以用于给 App 提供系统Logo。
    直白用图片名字的秘技加载图片,就算方便,可是由于那样的做法会把图纸缓存在内部存款和储蓄器中,在图纸超级多尺寸非常的大时会照成内部存款和储蓄器压力。

  • Assert Catalog 功能

    • 加多图片:直接将图片财富拖入 Asset Catalog,只怕下边包车型的士 + 号。

    • 能源属性:各种图片能够有多个尺码以提供给分化的荧屏尺寸使用。仍然为能够安装适用各样设备和种种特定尺寸 Attributes -> Devices。

    • 图片切成块:点击图片 -> Attributes -> Slicing -> Slices -> …

  • 适用矢量图片

    • 停放对应的图片格式进去 Assert Catalog 之后,然后设置其个性。

    • Attributes -> Devices -> Scale Factors -> Single Vector

<br />

4 Image


图片流:分界面全体由现存的图形构成。耗内部存款和储蓄器,但是简便。
代码流:分界面全体由代码绘制而成,本省部存款和储蓄器,适应性高。

10.4 自定义 TabBar

Logo的行使请严峻遵守系统定义来用,否则会让顾客混乱。

  • 粗略定制

  • 当中按键

    放置 5 个页面。然后利用一个新的视图覆盖中等的十分开关。

    @implementation MyTabBar
    - (void) viewWillAppear:(BOOL)animated {
        [self addCenterButtonWithImage:[UIImage imageNamed:@"camera"] highlightImage:nil];
    }
    
    // 计算按钮的位置并且放置到中间
    -(void) addCenterButtonWithImage:(UIImage*)buttonImage highlightImage:(UIImage*)highlightImage
    {
        UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
        button.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin;
        button.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height);
        [button setBackgroundImage:buttonImage forState:UIControlStateNormal];
        [button setBackgroundImage:highlightImage forState:UIControlStateHighlighted];
    
        CGFloat heightDifference = buttonImage.size.height - self.tabBar.frame.size.height;
        CGPoint center = self.tabBar.center;
        center.y = center.y - heightDifference/2.0 - self.tabBar.frame.size.height/3.0;
        button.center = center;
    
        [button addTarget:self action:@selector(middleButtonTapped:) forControlEvents:UIControlEventTouchUpInside];
    
        [self.view addSubview:button];
    }
    
    // It is OK to replace IBAction with void here.
    -(IBAction)middleButtonTapped:(id)sender {
        [self showViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"middlepopvc"] sender:self];
    }
    
  • 更加大胆的变通

    定制 UITableViewController,具体查看代码实现。( VerticalBar 卡塔 尔(英语:State of Qatar)

      ![](http://upload-images.jianshu.io/upload_images/721097-ff083038d253a2c2?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    

<br />

0 导论


0.1 技艺协助

1.9 App 基本概念

  • iOS App 代码结构(那是 Objective-c 语言,Swift 有所不一样,main 文件会被埋伏卡塔尔
    • main()
    • UIApplicationMain()(生成三个 UIApplication 对象并设置成为该应用的代办。卡塔 尔(阿拉伯语:قطر‎
    • UIApplication 对象
    • UIApplicationDelegate
  • iOS App 运营景况
    • Sandbox
    • 获得目录 NSHomeDirectory()
  • iOS 应用都是二个 Bundle
    • Bundle: 带有 Info.plist 字典的目录
    • 由此 NSBundle 类访问此中的能源
    • 第一是经过 mainBundle
    • resource bundle 和 framework(可实施动态库)
  • 查看 App Bundle
    设置栏中筛选设备 -> Generic iOS Device -> command + B 营造-> Workspace -> Products -> xxx.app -> 右键 查看文件 -> 右键 突显包内容

<br />

0.1.2 别的手艺支持

  • stack overflow 社区
  • OurCode 社区
  • Cocoa China 社区
  • V2EX 社区
  • GitHub (提议查看学习 awesome iOS 类别卡塔 尔(英语:State of Qatar)

1.1 创建新工程

  • Create a new Xcode project
  • File -> New -> Project [shift + command + N]

1.1 创设新工程

  • Create a new Xcode project
  • File -> New -> Project [shift + command + N]

9.1 Navigation Bar

0.1.1 苹果技能补助

  • 技巧文档张开药方式 <br />Xcode软件 -> Help -> Documentation and API Reference<br />文书档案是在英特网读取的,假如想要更高效,可以先实行下载。旧版本的模拟器也在这里安装。 <br />Xcode -> Preferences -> Downloads
  • 开垦者社区 https://developer.apple.com
  • iOS文档库 https://developer.apple.com/library/prerelease/ios/navigation/
  • WWDC 视频

5.3 示例代码结构

各类代码模块之间的关系和事关的明明。

6 View Controller


0.2 学习方法

1.4 Git 仓库

版本调节
Source Control:Create Git repository on My Mac
持续版本调节有特意篇幅。

0.2.1 方法

  • 相信是真的看录制。
  • 整治笔记。
  • 完成练习示例。

本贴意在作为对极客班 《iOS 开辟实战》第五期期课程录制重新学习的笔记。
对象是起家二个比较完好的 iOS 开荒知识点框架以至高效手册,笔者想找专门的学问……所以,打结实点基本功,你们懂的。
对生机勃勃意气风发内容的详细切磋会在学习达成后拉开新贴深远商讨。
简书小编不清楚怎么增多目录,所以笔者感觉或者在腾讯网上看会更清晰点……篇幅过长。
那是自家的腾讯网博客账号,招待各位同学嗤笑。
http://blog.csdn.net/mubinhuang/article/details/50649650
该贴仍在不断完备中。

11 UITableView


网易 iOS 极客班学习笔记。UITableView 是家常便饭支付应用最频仍的构件之意气风发。由于自家事先曾经做过无数施用,所以听课的时候超级多比较容易的东西就向来不展开记录了。建议依旧要多做几个Demo 进行练习,而且多看文书档案。熟悉 UITableViewDataSource 以及 UITableViewDelegate 的各个情势。
设若急需高度定制,还索要明白一下 UIScrollViewDelegate 的方法,UITableViewDelegate 公约也持续自它,所以它的点子也生龙活虎致有用,这样能够让您的 TableView 更灵敏性格。

  • 认识 UITableView

  • 三个 TableView 须要的职能。

  • iOS 中的 UITableView 结构

    • UITableView
    • UITableViewCell
      • UIView
    • UITableViewDataSource
    • UITableViewDelegate
    • NSIndexPath
      • row
      • section
  • UITableView 学习路径

10 TabBarController


11.2 UITableViewCell

注意:prepareForSegue 事件触发时,指标 ViewController 尚未调用 ViewDidLoad

  • Cell 数据传递
    didSelectRowAtIndexPath 方法中调用 performSegueWithIdentifier 的话,能够一直把 indexPath 作为 sender 参数字传送递到 prepareForSegue 中。这样就足以把对应数据传递给下一个ViewController 了。
  • Cell 高度
    • 享有行都相似高则设置 tableView.rowHeight 会通过 UITableViewAutomaticDimension 自动再推算调度一下。
    • 高度都分化则通过 UITableViewDelegatetableView:heightForRowAtIndexPath: 方法开展安装。
    • 也得以由此安装 tableView.estimatedRowHeight 来设置一个预估中度。
  • 定制 Cell - Prototype Cell

    • 能够在 Storyboard 中的 cell 举行自定义设计。

    • 通过 xib 创建 Cell

      let nib = UINib(nibName: "CellXibName", bundle: nil) // nil is UIBundle.mainBundle()
      tableView.registerNib(nib, forCellReuseIdentifier: "CellIdentifier")
      
    • 因而全代码设置 Cell,可是必定要在自定义 Cell 类中重载 initWithStyle 方法。

      tableView.registerClass(CustomCell.self, forCellReuseIdentifier: "CellIdentifier")
      

3.1 UIButton

10.3 在代码中利用 UITabBarController

铭记在安装之时要设置好 ViewController 的 tabBarItem 属性。

3.1 UIButton

1.3 工程音讯

  • Project Name:产物名称
  • Organization Name:组织名称
  • Organization Identifier:新成品独一名,日常把公司域名反过来写。
  • Language:运维语言
  • Devices:运维设备(通用,Nokia,苹果平板卡塔 尔(阿拉伯语:قطر‎
  • Use Core Data:是或不是选择数据存款和储蓄
  • Include Unit Tests:测量检验模块
  • Include UI Tests:UI测验模块

11.1 UITableView 的骨干使用

datas 是 [[String]] 格式的现身说法数据。

  • 设置 UITableView 的风格:.style

  • 设置 .dataSource 实现 UITableViewDataSource 中的常用方法。

    // MARK: - UITableViewDataSource
    // 设置表格 Section 数量
    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return datas.count
    }
    // 设置各个 Section 的 Row 数量
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return datas[section].count
    }
    // 设置每个 Cell 的具体内容
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("CellIndetifier")!
        cell.textLabel?.text = datas[indexPath.section][indexPath.row]
        return cell
    }
    // 设置表格表头文字
    func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
        return "Header"
    }
    // 设置表格表尾文字
    func tableView(tableView: UITableView, titleForFooterInSection section: Int) -> String? {
        return "Footer"
    }
    
  • 设置 .delegate 实现 UITableViewDelegate 中的常用方法。

    // MARK: - UITableViewDelegate
    // 设置表格各个 Section 的表头视图。
    func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        return nil
    }
    // 设置表格各个 Section 的表尾视图。
    func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
        return nil
    }
    // 选中某 Row 时触发的事件。
    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        // ...
    }
    

9.1 Navigation Bar

9.4 自定义导航栏

掌握以下顺序类的质量,并依靠实际须要自定义。基本上都以 Storyboard 中的操作,太轻便残酷了无法言语陈说。
苹果有提供 Customizing UINavigationBar 的代码示例,里面有有滋有味的自定义方法。

  • UINavigationBar
  • UIBarItem
    • UIBarButtonItem
  • UIToolBar

导航栏标题之上的小字在 Navigation Item -> Prompt 中安装。

<br />

4.1 UIImage

  • 图表加载

  • 图形动漫

    let anmiationImage = UIImage.animatedImageNamed("ImageArrayName", duration: 2.0)
    // ImageArrayName 是动画图片的前缀,动画图片资源应该按照该名称后面加数字来命名。
    // duration 是总时长。
    // KeyNote 可以导出动画的每帧图片。
    

8.1 应用运维

  • main - 运维程序

  • UIApplicationMain() - 运转应用代理

  • UIApplication - 运转消息循环

  • 应用软件Delegate - 生成选代替理

  • 基于 Storyboard 或然代码创设的 ViewController 加载 rootViewController

7 Storyboard


Storyboard 也是四个 xib 文件,只是它个中不只是放 View,而是放置 Scene.
能够点击 ViewController 然后一贯拖出 Segue 到其余 ViewController 个中,从而开创未有组件触发事件的 Segue。

6.2 UIViewController

  • UIViewController 介绍

  • 获取 ViewController

    • 创建 rootViewController
      • Info.plist 中的 UIMainStoryboardFile, NSMainNibFile 钦命了根调控器的根源。
      • UIApplication 会通过调用 _runWithMainScene:transitionContext:completion: 方法。
      • 然后调用 _loadMainInterfaceFile 来取出 Info.plist 中 UIMainStoryboardFile 或者 NSMainNibFile 信息。
      • 风度翩翩旦是前者,则再调用 _loadMainStoryboardFileNamed:bundle:
      • 只假使后世,则再调用 _loadMainNibFileNamed:bundle:
    • 加载好 rootViewController 之后就把那一个视图调整器赋值给 appDelegate.window.rootViewController。
    • 要是上述办法开端化分界面退步,则会调用 UIApplicationDelegate didFinshLaunch 方法来给技师贰个利用程序开首化界面的时机。最在这里早前时,也是只有那叁个办法来领头化分界面包车型地铁。
    • 意气风发经以上三种艺术都不曾给 appDelegate.window.rootViewController 赋值,则那个利用的 window 就可感到 nil 展现黑屏.
  • 获取 ViewController 的 View

    • 自定义 ViewController 装载进程
      • 调用 [UIViewController loadView] 借使有贯彻,调用之后就不会调用前边的法子了。假如是暗中同意完毕则会调用上面包车型客车别样艺术。
      • 调用 [UIViewController nibName] 假诺是暗中认可模板,则 nibName 应该是出自 Storyboard。若是是代码调用 initWithNibName 则由技术员钦点 nib. 借使两岸都不是,则会调用上边包车型客车方式。
      • [UIViewController exisitingNibNameMatchingClassName:bundle:],它会基于 ViewController 方法推断而且查找 Nib,假使都查找不到,系统会创设一个空白视图。
    • 要点
      • isViewLoaded 推断 ViewController 的 View 是还是不是曾经加载好了。
      • loadView 中不能够调用 super.

5.2 程序设计

平衡设计原则:设计程序时为前景或者的急需做好计划。但是这种格局有好有坏,有的时候候思虑太多,就可引致使当前作业难以实现。假使完全只考虑当下,就或者增添未来重构的次数。中间的度需求靠程序员把握。

  • 走通流程图,确认游戏逻辑
  • 明显静态数据结构

0.2.3 App Programming Guide for

  • 分界面幼功

View Controller Programming Guide
View Controller Catalog
View Programming Guide
UIKit User Interface Catalog
Event Handing Guide

  • 图形和动漫片

Drawing and Printing Guide
Concurrency Programming Guide
Quartz 2D Programming Guide
Core Animation Programming Guide

  • 网络与仓储

Network & Internet Starting Point (知道个方向卡塔 尔(英语:State of Qatar)
Networking Overview (了解个概念卡塔尔
Data Management Starting Point (知道个趋向卡塔 尔(阿拉伯语:قطر‎

  • 其他

Auto Layout Guide
Scroll View Programming Guide
Table View Programming Guide
Collection View Programming Guide

<br />

1.8 真机调试

  • 加多调节和测验账号
    Xcode -> Preferences -> Accounts -> +
  • 安装调节和测量试验账号
    Workspace -> General -> Identity -> Team 举办选用 -> Fix issues
  • 运行
    第二回运转会提醒错误,须求真机验证
    真机 -> 设置 -> 通用 -> 描述文件 -> 选中国国际信资集团任 -> 回到 Xcode 再一次运营

9 Navigation


6.2 UIViewController

  • UIViewController 介绍

  • 获取 ViewController

    • 创建 rootViewController
      • Info.plist 中的 UIMainStoryboardFile, NSMainNibFile 钦定了根调控器的源于。
      • UIApplication 会通过调用 _runWithMainScene:transitionContext:completion: 方法。
      • 然后调用 _loadMainInterfaceFile 来取出 Info.plist 中 UIMainStoryboardFile 或者 NSMainNibFile 信息。
      • 黄金年代旦是前面一个,则再调用 _loadMainStoryboardFileNamed:bundle:
      • 若果是后人,则再调用 _loadMainNibFileNamed:bundle:
    • 加载好 rootViewController 之后就把这几个视图调整器赋值给 appDelegate.window.rootViewController。
    • 借使上述措施初始化分界面战败,则会调用 UIApplicationDelegate didFinshLaunch 方法来给程序猿贰个施用程序发轫化分界面包车型地铁火候。最最初时,也是唯有那三个方法来最初化分界面包车型客车。
    • 生机勃勃旦上述三种情势都尚未给 appDelegate.window.rootViewController 赋值,则这几个应用的 window 就能为 nil 呈现黑屏.
  • 获取 ViewController 的 View

    • 自定义 ViewController 装载过程
      • 调用 [UIViewController loadView] 借使有落实,调用之后就不会调用前边的办法了。若是是暗中同意达成则会调用上边包车型大巴别的艺术。
      • 调用 [UIViewController nibName] 如若是暗许模板,则 nibName 应该是根源 Storyboard。尽管是代码调用 initWithNibName 则由程序员钦点 nib. 假诺双方都不是,则会调用上边包车型客车方法。
      • [UIViewController exisitingNibNameMatchingClassName:bundle:],它会根据ViewController 方法估计何况查找 Nib,假使都查找不到,系统会成立三个单手视图。
    • 要点
      • isViewLoaded 推断 ViewController 的 View 是或不是曾经加载好了。
      • loadView 中不能够调用 super.

0.2.2 参考书

  • ios 9 programming fundamentals with swift
  • ios 7 programming fundamentals (Objective-C)

11.3 UITableViewController

RefreshControl 的使用。

  • 下拉刷新扶持

  • 数码刷新

1.4 Git 仓库

版本调整
Source Control:Create Git repository on My Mac
再而三版本调节有特意篇幅。

5.2 程序设计

平衡设计原则:设计程序时为以后或然的须求做好希图。然而这种方法有好有坏,不常候思虑太多,就能够造成当前事务难以实现。假诺完全只考虑当下,就大概扩张今后重构的次数。中间的度供给靠工程师把握。

  • 走通流程图,确认游戏逻辑
  • 鲜明静态数据结构

0 导论


9 Navigation


5.3 示例代码结构

逐条代码模块之间的调换和涉嫌的明朗。

1.6 Storyboard

  • 图层识别
    入选图层之后,能够在 libraries -> identity inspector -> Document -> Label 中安装图层名称,能够改动图层在 Storyboard 的 Document Outline 中的名称。以便于识别。
  • 组件 library
    能够拖动这里的种种零器件到 canves 或内部对应的图层上。
  • 设置 Document Outline 突显名称
    当选组件 -> Indentity inspector -> Document -> Label
  • 设置 ViewController 尺寸
    选中 ViewController -> Attributes inspector -> Simulated Merices -> Size

6.1 轻易的设计情势介绍

9.2 UINavigationController

  • Navigation Controller 的结构(属性)
    • viewControllers (视图调整器数组,管理着导航调控器的保有视图调控器。卡塔尔国
      • topViewController (最顶上的视图调节器,绝大许多时候跟 visibleViewController 是同三个,但也不绝对。卡塔尔国
      • visibleViewController (当前呈现的视图调整器。卡塔 尔(英语:State of Qatar)
    • navigationBar
    • toolbar
    • delegate
  • 给现存的 ViewController 增加 NavigationController

    • 选中 ViewController -> Editor -> Embed In -> Navigation Controller
    • 拖动 NavigationController 到 Canvas -> 设置 ViewController 成为其 rootViewController
  • 利用 UINavigationController 的 Delegate 方法机会来展引导航时的数据传递(但是尽量依旧用 Segue 方法来实行多少传递卡塔 尔(阿拉伯语:قطر‎

    • navigationController:willShowViewController:animated: (日常数量传递会在那处张开。卡塔 尔(阿拉伯语:قطر‎
    • navigationController:didShowViewController:animated:

10.2 UITabBarItem

属性对应样式。

1.5 Xcode界面打听

3 Button - Storyboard 与代码之间联系方式


介绍最常用的 Interface 组件之风流倜傥 UIButton,以至它的应用格局。
于是介绍 Outlet Action 等概念。

1.6 Storyboard

  • 图层识别
    入选图层之后,能够在 libraries -> identity inspector -> Document -> Label 中设置图层名称,能够变动图层在 Storyboard 的 Document Outline 中的名称。以造福识别。
  • 组件 library
    能够拖动这里的种种构件到 canves 或内部对应的图层上。
  • 设置 Document Outline 呈现名称
    当选组件 -> Indentity inspector -> Document -> Label
  • 设置 ViewController 尺寸
    选中 ViewController -> Attributes inspector -> Simulated Merices -> Size

4 Image


图片流:分界面全部由现有的图纸构成。耗内存,可是简便。
代码流:分界面全体由代码绘制而成,省外部存款和储蓄器,适应性高。

8.3 AppDelegate

  • 出生

    • application:willFinishLaunchingWithOptions: 事件
      UI 已经加载出来了。RootViewController 已经创设好,只是还未访谈它的 view 方法。
      应用级的初步化专门的学业最棒都投身这么些职责,可是绝不在那间做太耗费时间的风云。

    Options 会提供运维状态音信。
    App Programming Guide for iOS 文书档案中的 Preserving Your App’s Visual Appearance Across Launches 中有详尽的验证。

    • application:didFinishLaunchingWithOptions: 事件
      分界面已经平复过了,可是 UI 还一向不放置到分界面上。当时代码已经开头实行,不过分界面看不见,也不会进展响应。
      仍是应用级其他最初化机缘。

    Options 会提供运转状态消息。
    * applicationDidBecomeActive: 事件
    使用已经要起来活动了的火候。

  • 步向不活跃状态

    • applicationWillResignActive: 事件
  • 跻身后台状态

    • applicationDidEnterBackground: 事件
      那是贰个短暂的时机,暗中同意是 5 秒内成功。可是足以经过 beginBackgroundTask 方法能够博得大致 10 分钟的后台运维事件。
      假如还必要越来越长的风云,供给编写制定后台运路程序。详细查看文书档案。
  • 选择关闭

    • applicationWillTerminate: 事件
      黄金年代旦你的行使刚好被挂起未有多长期,然后就被关门了,就能够接纳到那几个事件。假使您曾经被吊起在后台了,那在关门的时候就不会采用那么些通知。
  • 行使复活

    • applicationWillEnterForeground: 事件
      选择就要再次回到前台的风云。

0.2.2 参考书

  • ios 9 programming fundamentals with swift
  • ios 7 programming fundamentals (Objective-C)

10.1 UITabBarController 的结构

Tab Bar Item 平常不抢先多个,不然会被隐形。

  • tabBar

    • UITabBarItem
    • .moreNavigationController
  • viewControllers

    • customizableViewControllers
  • selectedViewController

  • delegate

    • UITabBarControllerDelegate

0.1.2 其余技能协理

  • stack overflow 社区
  • OurCode 社区
  • Cocoa China 社区
  • V2EX 社区
  • GitHub (提出查看学习 awesome iOS 种类卡塔尔国

0.2.1 方法

  • 相信是真的看录制。
  • 重新整建笔记。
  • 完了练习示例。

5.4 Keynote 课件显示

<br />

9.2 UINavigationController

  • Navigation Controller 的结构(属性)
    • viewControllers (视图调控器数组,管理着导航调控器的全数视图调控器。卡塔尔
      • topViewController (最顶上的视图调整器,绝大许多时候跟 visibleViewController 是同一个,但也不相对。卡塔尔国
      • visibleViewController (当前展现的视图调整器。卡塔 尔(阿拉伯语:قطر‎
    • navigationBar
    • toolbar
    • delegate
  • 给现成的 ViewController 增多 NavigationController

    • 选中 ViewController -> Editor -> Embed In -> Navigation Controller
    • 拖动 NavigationController 到 Canvas -> 设置 ViewController 成为其 rootViewController
  • 接收 UINavigationController 的 Delegate 方法机缘来进展导航时的数据传递(可是尽量依旧用 Segue 方法来张开数据传递卡塔尔国

    • navigationController:willShowViewController:animated: (通常数量传递会在这里边进行。卡塔 尔(阿拉伯语:قطر‎
    • navigationController:didShowViewController:animated:

8.4 移动选取的性状。

活动接纳的利用会特别的碎片,会在各类状态中来回切换。

<br />

1.3 工程音讯

  • Project Name:成品名称
  • Organization Name:组织名称
  • Organization Identifier:新产物独一名,平时把公司域名反过来写。
  • Language:运维语言
  • Devices:运转设备(通用,中兴,三星GALAXY Tab卡塔 尔(英语:State of Qatar)
  • Use Core Data:是还是不是接受数据存储
  • Include Unit Tests:测量试验模块
  • Include UI Tests:UI测验模块

7.1 Storyboard Segue

  • 应用代码举行 Segue 跳转

    func segueAction() {
        // 0 以 Segue 跳转
        performSegueWithIdentifier("SegueIdentifier", sender: nil)
    
        // 1 获取 ViewController
        if let nextViewController = storyboard?.instantiateViewControllerWithIdentifier("ViewControllerIdentifier") {
            showViewController(nextViewController, sender: nil)
        }
    }
    
  • Segue 传值

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        // 每次有 Segue 被触发就会调用此函数,以提供传值时机。
    }
    
  • Storyboard Segue 回退

    @IBAction override func unwindForSegue(unwindSegue: UIStoryboardSegue, towardsViewController subsequentVC: UIViewController) {
        // @IBAction func unwindFuncName(segueName: UIStoryboardSegue) { }
        // 名称可以随意,参数至少要有一个 UIStoryboardSegue。用来作为 Storyboard 回退触发事件。
    }
    

8 App Lifecycle


9.3 在代码中运用 NavigationController

并不推荐使用代码创设,毕竟用 Storyboard 就很有益了。
setViewControllers:animated: 比较有机会意义,能够让导航不用每一回都从 rootViewController 开首。越来越灵敏。

7.2 多 Storyboard

  • 现场景太多的时候,能够把 Storyboard 分成五个文本。场景之间的连接,可以通过二种办法落到实处。

    • Storyboard Reference 组件,跟 ViewController 组件同样能够拖动到 Canvas 上。並且能够安装它指向的 Storyboard 文件,Reference ID(即便不钦赐就是 initial View Controller卡塔 尔(英语:State of Qatar)。
    • 当选供给停放在新 Storyboard 上的 ViewController,然后点击 Editor -> Refactor to Storyboard。然后就能够创建新的 Storyboard 文件,并将当选的 ViewController 放置到此中。
  • 赢得别的 Storyboard

    func muchStoryboard() {
        // 根据名称获取 Storyboard
        let storyboard = UIStoryboard(name: "StoryboardName", bundle: NSBundle.mainBundle())
    }
    

<br />

0.1.1 苹果本领扶助

  • 手艺文书档案张开药方式 <br />Xcode软件 -> Help -> Documentation and API Reference<br />文书档案是在网络读取的,如若想要特别便捷,能够先实行下载。旧版本的模拟器也在此边安装。 <br />Xcode -> Preferences -> Downloads
  • 开荒者社区 https://developer.apple.com
  • iOS文档库 https://developer.apple.com/library/prerelease/ios/navigation/
  • WWDC 视频

1.2 选择工程模板

可以筛选二种各个的工程模板,包罗 iOS, OS X, watchOS, tvOS 平常选拔 iOS -> Single View Application。

8.2 顾客相互作用

RunLoop Mode: [source] 其实就是事件源。

  • main run loop 循环关心事件源。选择事件。

  • 选择到事件就传递给 Application object。

  • Application object 对事件实行分发。

  • 事件依据代码逻辑反馈到视图上。

参照他事他说加以考查资料


知乎:品雪

8.2 客户相互作用

RunLoop Mode: [source] 其实便是事件源。

  • main run loop 循环关切事件源。选取事件。

  • 收纳到事件就传递给 Application object。

  • Application object 对事件进行分发。

  • 事件依照代码逻辑反馈到视图上。

0.1 技能援救

5.1 供给解析

  • 详尽摸底应用必要,要求适合的数量通晓客商想要的是什么样。
  • 详见陈设利用的逻辑流程,各类模块功用的因由和去向。

9.3 在代码中使用 NavigationController

并不推荐使用代码创造,毕竟用 Storyboard 就很方便了。
setViewControllers:animated: 相比有机会意义,能够让导航不用每一次都从 rootViewController 开首。更灵敏。

1.5 Xcode分界面摸底

6.3 多个 View Controller

  • 弹出新视图的方式 presentViewController:animation:completion:

    • UIViewController 的 modalPresentationStyle 是安装弹出调控器风格的性质。
    • UIViewController 的 modalTransitionStyle 是设置弹出动漫风格的属性。
  • iOS 8+ 之后新办法 showViewController:sender

  • 放活调控器 dismissViewControllerAnimated:completion:

  • 回传数据:把父控制器作为子调节器的代办,通过回调函数来传递数据。何况由父调整器来调节子调节器的自由,并非子调整器本身调用 dismissViewControllerAnimated:completion: 方法。

<br />

6.1 简单的设计方式介绍

8 App Lifecycle


3 Button - Storyboard 与代码之间联系格局


介绍最常用的 Interface 组件之黄金时代 UIButton,以至它的施用方法。
故此介绍 Outlet Action 等概念。

1.2 选取工程模板

能够选取各个两种的工程模板,包涵 iOS, OS X, watchOS, tvOS 日常选择 iOS -> Single View Application。

8.3 AppDelegate

  • 出生

    • application:willFinishLaunchingWithOptions: 事件
      UI 已经加载出来了。RootViewController 已经创建好,只是还未有访谈它的 view 方法。
      应用级的开始化专门的工作最棒都放在这里个地方,然而绝不在这里处做太耗费时间的事件。

    Options 会提供运行状态音讯。
    App Programming Guide for iOS 文档中的 Preserving Your App’s Visual Appearance Across Launches 中有详细的表达。

    • application:didFinishLaunchingWithOptions: 事件
      界面已经过来过了,可是 UI 尚未曾放置到分界面上。那时代码已经早先进行,可是界面看不见,也不博览会开响应。
      仍是应用等级的起头化学工业机械会。

    Options 会提供运行状态新闻。
    * applicationDidBecomeActive: 事件
    选择已经要早先活动了的时机。

  • 跻身不活跃状态

    • applicationWillResignActive: 事件
  • 进去后台状态

    • applicationDidEnterBackground: 事件
      那是二个指日可待的机缘,默许是 5 秒内产生。可是足以因此 beginBackgroundTask 方法能够收获大约 10 分钟的后台运转事件。
      假使还须求更加长的风云,要求编写制定后台运路程序。详细查看文书档案。
  • 动用关闭

    • applicationWillTerminate: 事件
      假设您的利用无独有偶被挂起未有多短时间,然后就被关门了,就可以吸收接纳到那几个事件。假使你已经被高悬在后台了,那在闭馆的时候就不会收到那几个通知。
  • 使用复活

    • applicationWillEnterForeground: 事件
      利用就要再次来到前台的平地风波。

4.2 Assert Catalog

  • Assert Catalog 介绍

    模板会暗许生成八个 Assert Catalog 文件同有时候此中有 Appicon 以用来给 App 提供系统Logo。
    一向用图片名字的主意加载图片,纵然便民,可是由于那样的做法会把图纸缓存在内部存款和储蓄器中,在图片很多尺寸非常的大时会照成内部存储器压力。

  • Assert Catalog 功能

    • 加多图片:直接将图片能源拖入 Asset Catalog,可能上面包车型地铁 + 号。

    • 财富属性:每一种图片能够有多少个尺码以提须要分歧的显示器尺寸使用。还是能安装适用种种设备和各类特定尺寸 Attributes -> Devices。

    • 图形切块:点击图片 -> Attributes -> Slicing -> Slices -> …

  • 适用矢量图片

    • 放置对应的图片格式进去 Assert Catalog 之后,然后设置其质量。

    • Attributes -> Devices -> Scale Factors -> Single Vector

<br />

1 Hello Word


9.4 自定义导航栏

问询以下顺序类的属性,并依照实际必要自定义。
苹果有提供 Customizing UINavigationBar 的代码示例,里面有五颜六色的自定义方法。

  • UINavigationBar
  • UIBarItem
    • UIBarButtonItem
  • UIToolBar

导航栏标题之上的小楷在 Navigation Item -> Prompt 中安装。

<br />
iOS 实战开拓课程笔记

本贴意在作为对极客班 《iOS 开拓实战》第五期期课程摄像重新学习的笔记。
对象是创设多少个相比较完好的 iOS 开发知识点框架以至高效手册。
对意气风发后生可畏内容的详实斟酌会开启新贴深远斟酌。
该贴仍在不断完备中。

3.2 IBOutlet

  • IBOutlet Connection
    把 Nib object 与 代码中的 IBOutlet 变量相连接

    • 在 Storyboard 上校组件与代码中的 IBOutlet 变量进行连接后,会在 Storyboard 代码中多出来那样风流洒脱段连接表明

      <connections>
          <outlet property="okLabel" destination="QJt-2z-ban" id="mhJ-Nu-TIR"/>
      </connections>
      // property 变量名称
      // destination 界面上的组件名称
      // id 标志这个连接本身
      
    • 运作时调用
      出于 xib 中存款和储蓄的是分界面模板,所以在同意的时候,类实例代码会触发分界面包车型大巴实例化方法。
      说起底调用 [UINib instantiateWithOwner:options:] 方法实例化界面。
      Owner 实际上是调用了叁个按名字绑定的性质。 [owner setValue:uiObj forKey:outlet.property]

实在我自个儿都看不懂这段在说什么样……差不离是说 outlet connection 其实是标明了分界面与代码之间的关联,然后在程序运转的时候,会经过生机勃勃七种runtime 方法调用这种关联,并依靠分界面模板实例化分界面组件,进而生成组件绘制吧。

  • Action Connection

    • 分界面事件三回九转 IBAction

      <connections>
          <action selector="buttonAction:" destination="BYZ-38-t0r" eventType="touchUpInside" id="BQA-pw-9f8"/>
      </connections>
      // selector 方法名称
      // eventType 事件类型
      

<br />

1.9 App 基本概念

  • iOS App 代码结构(那是 Objective-c 语言,Swift 有所不一致,main 文件会被埋伏卡塔 尔(英语:State of Qatar)
    • main()
    • UIApplicationMain()(生成多个 UIApplication 对象并安装成为该利用的代办。卡塔 尔(英语:State of Qatar)
    • UIApplication 对象
    • UIApplicationDelegate
  • iOS App 运营条件
    • Sandbox
    • 获得目录 NSHomeDirectory()
  • iOS 应用都以二个 Bundle
    • Bundle: 带有 Info.plist 字典的目录
    • 由此 NSBundle 类访谈当中的财富
    • 驷不及舌是透过 mainBundle
    • resource bundle 和 framework(可进行动态库)
  • 查看 App Bundle
    设置栏中精选设备 -> Generic iOS Device -> command + B 构建-> Workspace -> Products -> xxx.app -> 右键 查看文件 -> 右键 呈现包内容

<br />

1.7 模拟器

  • 体现尺寸调治
    Window -> Scale -> … [command + 1-5]
  • 装备操作
    Hardware -> …
  • 再次回到出厂设置
    Simulator -> Reset content and Settings…

7 Storyboard


Storyboard 也是三个 xib 文件,只是它里面不只是放 View,而是放置 Scene.
能够点击 ViewController 然后平昔拖出 Segue 到任何 ViewController 个中,进而开创未有组件触发事件的 Segue。

3.2 IBOutlet

  • IBOutlet Connection
    把 Nib object 与 代码中的 IBOutlet 变量相连接

    • 在 Storyboard 少将组件与代码中的 IBOutlet 变量进行三回九转后,会在 Storyboard 代码中多出来这样黄金时代段连接表明

      <connections>
          <outlet property="okLabel" destination="QJt-2z-ban" id="mhJ-Nu-TIR"/>
      </connections>
      // property 变量名称
      // destination 界面上的组件名称
      // id 标志这个连接本身
      
    • 运维时调用
      出于 xib 中存款和储蓄的是分界面模板,所以在同意的时候,类实例代码会触发分界面包车型客车实例化方法。
      最终调用 [UINib instantiateWithOwner:options:] 方法实例化分界面。
      Owner 实际上是调用了一个按名字绑定的性质。 [owner setValue:uiObj forKey:outlet.property]

实在笔者自身都看不懂这段在说什么样……差不离是说 outlet connection 其实是标明了分界面与代码之间的关联,然后在程序运维的时候,会经过生机勃勃各类runtime 方法调用这种关联,并基于分界面模板实例化分界面组件,进而生成组件绘制吧。

  • Action Connection

    • 分界面事件三翻五次 IBAction

      <connections>
          <action selector="buttonAction:" destination="BYZ-38-t0r" eventType="touchUpInside" id="BQA-pw-9f8"/>
      </connections>
      // selector 方法名称
      // eventType 事件类型
      

<br />

0.2.3 App Programming Guide for

  • 界面根基

View Controller Programming Guide
View Controller Catalog
View Programming Guide
UIKit User Interface Catalog
Event Handing Guide

  • 图片和动漫

Drawing and Printing Guide
Concurrency Programming Guide
Quartz 2D Programming Guide
Core Animation Programming Guide

  • 互联网与积存

Network & Internet Starting Point (知道个样子卡塔尔
Networking Overview (驾驭个概念卡塔尔
Data Management Starting Point (知道个方向卡塔 尔(英语:State of Qatar)

  • 其他

Auto Layout Guide
Scroll View Programming Guide
Table View Programming Guide
Collection View Programming Guide

<br />

1.8 真机调节和测量检验

  • 累计调节和测验账号
    Xcode -> Preferences -> Accounts -> +
  • 安装调节和测验账号
    Workspace -> General -> Identity -> Team 进行分选 -> Fix issues
  • 运行
    第叁遍运维会提醒错误,需求真机验证
    真机 -> 设置 -> 通用 -> 描述文件 -> 选中国国际信资集团任 -> 回到 Xcode 再一次运维

1.7 模拟器

  • 来得尺寸调度
    Window -> Scale -> … [command + 1-5]
  • 设施操作
    Hardware -> …
  • 回来出厂设置
    Simulator -> Reset content and Settings…

1 Hello Word


本文由新金沙国际手机版发布于金沙棋牌游戏官方网站,转载请注明出处:网易 iOS 极客班学习笔记

关键词:

Unity Gameplay工具集(Unity Gameplay Tool Set)

Gameplay框架 开始实现各种各样Gameplay时,我们常会编写符合需求,却相对更hardcode的Gameplay代码。 这做法有一定好处,...

详细>>

能解放双手的流程自动化软件

延伸阅读在最下方 音频:能解放双手的流程自动化软件 能解放双手的流程自动化软件。老王一直有个观点,在当前的...

详细>>

运营事件的黄金时间解析

大家都晓得,产物都有生命周期,举例种子期、成短时间、发生期、衰落期,那是大的上边来说。小的地点来说,各...

详细>>

陌陌、微博和快手,视频化三巨头终有一战

陌陌、微博和快手,视频化三巨头终有一战。陌陌、微博和快手,视频化三巨头终有一战。三、终战的方式推测 1.陌...

详细>>