下载APP
登录
关闭
讲堂
算法训练营
Python 进阶训练营
企业服务
极客商城
客户端下载
兑换中心
渠道合作
推荐作者
当前播放: 11 | iOS基本页面框架的构成和实现
00:00 / 00:00
标清
  • 标清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看

从0开发一款iOS App

共106讲 · 106课时,约1000分钟
2114
免费
01 | 课程介绍
免费
02 | 内容综述
免费
03 | 常见App类型及技术栈浅析
免费
04 | 使用Xcode创建第一个工程
免费
05 | MVC模式:iOS中的架构基石
免费
06 | iOS中的视图UIView
07 | 了解UIView的生命周期
08 | 视图的控制器UIViewContro...
09 | 结合视图和控制器构建Tabb...
10 | 使用Navigation构建App的...
11 | iOS基本页面框架的构成和...
12 | 系统函数中常见模式Delega...
13 | UITableView简介
14 | UITableView中Delegate和D...
15 | UITableViewCell的复用及...
16 | 结合子视图实现完整的列表...
17 | UICollectionView的基本应...
18 | UICollectionViewLayout...
19 | 基本列表视图的选择和使用
20 | 滚动视图的基类UIScrollVi...
21 | 应用UIScrollViewDelegate...
22 | iOS中滚动视图对比及App内...
23 | iOS中文字的展示:UILabel...
24 | iOS中图片的展示:UIImage...
25 | iOS中按钮的实现:UIButto...
26 | UIControl以及Target-Act...
27 | 使用UIGestureRecognizer...
28 | 通过UIAlertView了解UIKit...
29 | Web基础知识及WKWebView ...
30 | 使用WKWebView及Delgate实...
31 | 认识观察者模式KVO并展示...
32 | iOS开发中的Web应用浅析
33 | 使用UIView动画完善界面的...
34 | 动画背后的CALayer基本应...
35 | CoreAnimation及开源动画...
36 | 常用代码规范和重构方式
37 | 结合UIKit分析常用App的页...
38 | 网络基础及请求的封装
39 | NSURLSession基础原理、组...
40 | 使用系统网络架构NSURLSes...
41 | 常用框架集成方式Submodul...
42 | 集成和使用开源网络框架
43 | iOS中的JSON解析
44 | 使用结构化的数据进行解析...
45 | 实现列表数据加载、解析和...
46 | iOS沙盒机制和文件结构
47 | 使用NSFileManager操作和...
48 | iOS中的序列化NSCoding
49 | 开源存储方案对比与分析
50 | 缓存新闻列表数据及已读状...
51 | iOS中线程的基础知识及NST...
52 | GCD的常用方法分析和使用
53 | 了解Operation、Runloop以...
54 | 如何管理App中的图片下载...
55 | 开源图片框架接触的架构和...
56 | 了解iOS系统的音视频框架
57 | 重构视频列表展示视频
58 | 实现简单视频播放器AVPla...
59 | iOS消息机制NSNotificatio...
60 | 使用Notification接收和处...
61 | 使用KVO监听和处理播放资...
62 | CMTime及播放缓冲进度的获...
63 | 使用单例模式重构播放器业...
64 | 常用App视频业务及流程浅...
65 | AutoLayout简介
66 | 使用AutoLayout实现通用T...
67 | iOS常用布局方式选择
68 | 逻辑分辨率适配
69 | 物理分辨率适配
70 | 使用ImageAsset管理图片资...
71 | iPhone X适配
72 | iOS开发适配常用方法总结
73 | App启动过程及生命周期分...
74 | 通过App生命周期回调实现...
75 | 使用URL Scheme进行App间...
76 | Universal Link简介
77 | 常用组件化Target-Action...
78 | 常用组件化URL Scheme方...
79 | 常用组件化Protocol-Clas...
80 | 实现简单的第三方登录和分...
81 | iOS中静态库的制作和使用
82 | iOS当中Framework的制作和...
83 | OAuth和OpenID原理和使用
84 | 集成QQ SDK实现登录和分...
85 | iOS中常用日志和上报系统...
86 | 类CocoaLumberjack日志框...
87 | Crash的类型介绍和常用收...
88 | 常用上报技术方案对比和分...
89 | iOS中定位和定位权限
90 | 定位功能实现和位置信息的...
91 | iOS中推送和推送权限
92 | 使用UserNotifications实...
93 | 远程推送与APNs简介
94 | 使用UserNotifications接...
95 | iOS图标管理和动态更新
96 | iOS App Extension简介
97 | 实现Today Extension以...
98 | UITextField和UITextView
99 | 使用UITextField实现搜索...
100 | 使用UITextView实现输入...
101 | 复杂列表页实现方案及IGL...
102 | 复杂内容页展示逻辑及实...
103 | App的签名原理和证书申请
104 | 常用iOS唯一标识符
105 | App的打包和上架流程
106 | 课程总结和结束语
本节摘要

精选留言(8)

  • 2019-05-13
    我也是用苹果推荐的方式, 加上hide tabbar when push之后效果就是视频那样了.如果直接用第二种的话, 右上角有一个黑块在动, 这个问题很久以前就有.
    3
  • 2019-04-30
    你好,我现在使用的是 UITabBarController 作为根视图,添加多个 navi。

    所以想问一下,如果是 UINavigationController 作为根视图,那 tabbar 上面的多个 ViewController 就是共用一个 navigationItem, 那怎么给 ViewController 设置单独的 item title 呢?

    作者回复: 可以使用SubView来实现。目前这两种方式 无论哪种都需要自定义的处理下,才能做到和主流App一样的交互,基本都不是原生的体验了

    2
  • 2019-04-23
    买了蛮多极客视频,这个是唯一能跟上视频的节奏,发布一节课学一节课,讲得清楚,容易理解。希望学完视频直接可以独立完成一个项目,学习过程中如果有问题还希望得到老师的回复。
    2
  • 2019-04-23
    我做的项目一般都用第一种呀,就是用tabBarController做为根控制器,然后老师说的推倒下一个控制器,我是写代码隐藏底部tabBar的. 效果是一样的。老师能说一下就是用nav做根控制器有什么好处吗?

    作者回复: 这样来说比较简单,不用处理动画效果。

    2
  • 2019-12-10
    xcode11.0,把storyboard删掉之后编译没有错,但是运行的界面是全黑的了

    作者回复: 示例工程应该是可以使用XCode11跑起来的,系统会向下兼容,并且主流的App也都要支持非iOS13的设备。那么对于在iOS13中新建工程,单独的根据视频删除storyboard是不行的。在删除main.storyboard的时候,在和课程中相同的删除操作之上,也需要删除在info.plist中的Application Scene Manifest中对应storyboard的默认设置。简单的来说如果不使用Main.storyboard,就需要把 info.plist 中 Main.storyboard相关的设置全部删除,并且在SceneDelegate中自己实现window。SceneDelegate和Appdelegate这部分在iOS13中也有了变化,可以参考对应课程下方的留言,或者直接看https://developer.apple.com/videos/play/wwdc2019/42 这个session

    1
    1
  • 2019-10-24
    老师,你好!我用xcode11开发的,没有删除Main.storyboard时,运行是好的。但是删除之后,运行时就报错了。2019-10-24 09:38:01.965697+0800 SampleApp[19464:11150298] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Could not find a storyboard named 'Main' in bundle NSBundle
    请问这是什么原因呀?
    展开

    作者回复: xcode11之后稍微有了些变化。在删除main.storyboard的时候,在和课程中相同的删除操作之上,也需要删除在info.plist中的Application Scene Manifest中对应storyboard的默认设置。简单的来说如果不使用Main.storyboard,就需要把info.plist和Main.storyboard相关的设置全部删除,并且在SceneDelegate中自己实现window。SceneDelegate和Appdelegate这部分在iOS13中也有了变化,可以参考下面的留言,或者直接看https://developer.apple.com/videos/play/wwdc2019/42 这个session

  • 2019-09-28
    去掉 storyboard 之后 程序怎么都跑不通,不知道是哪里都问题

    显示出问题都是这一行
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    我Xcode 的版本号是 11.0 是和我用的Xcode是最新版有关么?

    2019-09-28 16:07:01.828651+0800 exam02[11024:208041] -[AppDelegate setWindow:]: unrecognized selector sent to instance 0x600002edc040
    2019-09-28 16:07:01.833348+0800 exam02[11024:208041] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[AppDelegate setWindow:]: unrecognized selector sent to instance 0x600002edc040'

    老师帮忙看一下呢
    展开

    作者回复: 是的。iOS13之后,appdelegate的指责发生了变化,具体的可以参考https://developer.apple.com/videos/play/wwdc2019/42 这个session。 简单的说和UI生命周期相关的回调都交给了SceneDelegate 这个delegate,而appdelegate主要负责 app 生命周期相关的回调。对于window来说,作为一个特殊的UI,也自然的变成了SceneDelegate的一个property,我们可以在SceneDelegate的头文件中找到它,并在willConnectToSession这个函数中使用。同时在删除main.storyboard的时候,在和课程中相同的删除操作之上,也需要删除在info.plist中的Application Scene Manifest中对应storyboard的默认设置

  • 2019-04-22
    大佬快更新,多讲点