零基础iOS开发学习日记

3,693 阅读2分钟

字节跳动青训营

现状和基本开发

内存管理和block

多线程和GCD

UIKit和Swift

手势和动画

存储与网络、多媒体技术和设计模式

UI控件篇

在说到控件前,需要说一下ios端App中的UI显示需要的准备工作:

  • 针对于父控件的大小、坐标
  • 内容,包括图片、数据、文字等
  • 显示的样式,例如UILabel显示的文字颜色、大小等

UIImageView 与 UILabel

UIImageView 与 UILabel

UIButton 与 UITextField

UIButton 与 UITextField

UIScrollView

UIScrollView

UICollectionView

UICollectionView

UIPickView

UIPickView

UISwitch 与 UIProgressView

UISwitch 与 UIProgressView

UIAlertController

UIAlertController

WKWebView

WKWebView

Quartz2D

Quartz2D

CALayer、动画、手势、事件

CALayer、动画、手势、事件

控制器篇

UIViewController

  • 最基础的控制器,想放什么放什么,可以理解为一张白纸
  • 一些设置
//设置背景色
self.view.backgroundColor = [UIColor redColor];
//平铺的方式设置背景
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"back"]];
//添加控件
[self.view addSubview: self.btn];

自定义根控制器 与 UINavigationController

自定义根控制器与UINavigationController

UICollectionViewController 与 UITabBarController

UICollectionViewController 与 UITabBarController

UITableViewController

UITableViewController

功能篇

  • 这个部分主要聚焦在数据获取的功能,例如获取图片,JSON等
  • 大概的分类依据为,从plist、从数据库、从网络等

读取plist和数组转模型

读取plist和数组转模型

访问网络

访问网络

SQLite数据库

SQLite数据库

数据界面间传递

数据界面间传递

Bluetooth蓝牙

Bluetooth蓝牙

多线程

多线程 GCD的Swift实现

存储本地信息

存储本地信息

第三方框架篇

babyBluetooth

babyBluetooth

SnpaKit与Masonary

AFNetworking

SDWebImage

FMDB

系统相关

获取系统相关的信息

  • 状态栏高度和导航栏高度
//swift
let navHeight = navigationController?.navigationBar.frame.size.height
//$0 闭包 表示第一个参数
let statusHeight = UIApplication.shared.windows.first{$0.isKeyWindow}?.windowScene?.statusBarManager?.statusBarFrame.size.height
//oc
CGFloat navHeight = self.navigationController.navigationBar.bounds.size.height;
CGFloat statusHeight = [UIApplication sharedApplication].windows.firstObject.windowScene.statusBarManager.statusBarFrame.size.height;
  • keyWindow,也就是最下面的视图
//swift
UIApplication.shared.windows.first{$0.isKeyWindow}
//oc
[UIApplication sharedApplication].windows.firstObject;

其他

app设计思路分享

数据处理

  • 这个部分整理一些遇到的数据处理方面的内容 数据处理

一些小点

一些小点

modal跳转与视图生命周期

modal跳转与视图生命周期

沙盒目录

#import "NSString+Sendbox.h"

@implementation NSString (Sendbox)
//缓存
- (instancetype)appendCache{
    return [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:[self lastPathComponent]];
}
//暂存
- (instancetype)appendTemp{
    return [NSTemporaryDirectory() stringByAppendingPathComponent:[self lastPathComponent]];
}
//文件
- (instancetype)appendDocument{
    return [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:[self lastPathComponent]];
}
@end

快捷键

CMD + CTRL + E 全局修改
CTRL + 6 直接输入,支持智能搜索和匹配
CMD + SHIFT + O 全局搜索
CMD + SHIFT + F 全局查找
CMD + L 跳行
CMD + SHIFT + J 定位文件
CMD + OPTION + N 新建文件夹
CMD + N 新建文件
CMD + SHIFT + N 新建项目