UI初级:
第一天
第二天
第三天
UINavigationController:导航控制器 (导航栈型结构), 默认显示栈顶控制器,需要根视图控制器来显示界面元素(window 一样)
UILabBarController
主页 》》 详情 : init property
详情 》》主页 : notification delegate
UIView:
5要素:持续时间;线性规律;动画类型;回调方法;其他配置
begainAnomator
commitAnimaion : 提交动画
setAnimationTransition:转场动画
UIImageView
UIScrollView
1.继承UIView
contentOffset:设置当前可见内容的便宜位置
contentSize:当前内容空间大小
contentInset:设置内容空间偏移量
pagingEnabke:设置是否可以翻页
scrollEnable:设置是否滚动
showsHorizontalScrollIndicator:设置是否显示横向条
2.代理方法
(void)scrollViewDidScroll
(void)scrollViewDidEndDragging(dragging : 拖动)
3.
UIPageControl
继承UIView
用于分页显示 指示页面显示
numberOfPage
currentPage
pageOmdiator
currentPageIndicatorColor
userInteractionEnable //开启用户交互
UITableView
1.继承UIScrollView
2.仅提供纵向展示效果
3.UITableViewControl 继承制UITableView
初始化及属性
风格: plain group
属性: style dataSource delegate editing tableHeaderView
separator reloadData:刷新表视图,重新调用数据
协议: UITableViewDatasource 数据源
section low how to show
UITableViewCell : 里面有一个uiview控件作为其他内容的容器, imageView textLabel detailTextLabel
typedef NS_ENUM(NSInteger, UITableViewCellAccessoryType) {
UITableViewCellAccessoryNone, // don't show any accessory view
UITableViewCellAccessoryDisclosureIndicator, // regular chevron. doesn't track
UITableViewCellAccessoryDetailDisclosureButton, // info button w/ chevron. tracks
UITableViewCellAccessoryCheckmark, // checkmark. doesn't track
UITableViewCellAccessoryDetailButton NS_ENUM_AVAILABLE_IOS(7_0) // info button. tracks
};
setEdting
delete move
netWorking Request
get:
1.创建request
2.发送request
3.接收,解析数据
同步
1.创建request
NSMUtableURLRequest * request = [NSMutableURLRequest requestWithRUL : [NSURL URLwithString : @"地址"]];
//如果有头部,必须加,request 必须申明为可变的
[request addvalue : @"你的 apikey" forHTTPHeaderField:@"apikey"];
2.发送request
NSError * error = nil;
[NSURLConnection sendSychronousRequest : request returningResponse:nil error:&error];
3.接收,解析数据
NSData * data = [NSJSONSerialization JSONObjectWithData : data options : NSJSONReadingMutableLeaves error : &error];
异步
1.创建request
同上
2.发送request 使用代理 实现两种方法
[NSURLConnection connectionWithRequest : request delefate : self];
3.接收,解析数据
同上
异步
post:
1.创建request
NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString : @"地址"]];
request.timeoutInterval = 10.0;
//可以把数据装到字典里面,然后再取出再赋给body parameterStr
request.HTTPBody = [parameterStr dataUsingEncoding : NSUTF8StringEncoding];
2.发送request
与get相同 异步和同步也一样
3.接收,解析数据
collectionView
数据持久化
4种方式: 1.属性列表 2.对象列表 3.数据库存储:SQLLite3 4.Core Data
1.沙盒
每个应用都会有一个独立的存储空间沙盒 每个应用都遵守沙盒机制,各自只能访问自身的沙盒内的数据
内容:
document:存储用户自定义的数据
library:应用程序相关的数据
tmp:存放临时文件的地方,重启时丢弃
2.NSFileManager
管理沙盒路径下的文件
3.NSuserDefault 轻量级数据持久话方式
4.plist属性列表 5.对象归档: 直接存储为一个文件,对对象来进行归档
【基础知识】
1.数据持久化方法 /** * Archive: 归档,将对象压缩为文件 * Core Data: 大数据 * NSUserDefaults: 轻量数据(用户名、密码) * Plist: 属性列表,灵活性、重用性高 */
2.沙盒主路径包含以下目录 /** * Document:存储用户自定义数据 * Library: 存储应用程序相关数据 * temp: 存放临时文件,当iPhone重启时,会丢失该目录里面的所有数据 */
3.路径获取方法 /** * 应用包路径: [[NSBundle mainBundle] pathForAuxiliaryExecutable:@""]; * * 沙盒主路径: NSHomeDirectory(); * Documents路径:NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject; * Library路径: NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); * temp路径: NSTemporaryDirectory() */
AVAudioPlayer
AVAudioPlayer : 音频播放器 不提供可视化界面 仅能播放本地音乐文件
AVFoundation框架 没有队列,只能播饭一个指定路径的音频(单个声音),要播放多个音频,需要创建多个AVAudioPlayer来实现, AVQueuePlayer更强大
属性:playing duration delegate currentTime numberOfLoops
协议方法:audioPlayerDidFinishPlaying:
AVAudioPlayer只能播放一个完整的文件,并不支持流式播放
pan : 用它可以来调节音频播放时左右声道的大小,如果值是-1.0为完全左声道发生,如果是1.0则为完全右声道发音。
就是可以测量音频播放时实时声道的功率大小,这个功能可以用于辅助显示声音的波浪,很多电脑上的播放器都有的
MPMoviePlayerController
MediaPlayer框架
/** < 获取bundle路径下 inDirectory 路径内的同类型资源 */
NSArray * array = [[NSBundle mainBundle] pathsForResourcesOfType:@"mp3" inDirectory:nil];
for (NSString * name in array) {
NSLog(@"%@",[name lastPathComponent]);
}
name : //你是我的眼.mp3
name lastPathComponent : // /Users/rimi/Library/Developer/CoreSimulator/Devices/834D8E40-3F33-4620-B4DC-623D47BF5A80/data/Containers/Bundle/Application/8981CF63-1D33-4BF5-879E-260F30D7FC7C/P_AVAudioPlayer.app/你是我的眼.mp3
refreshControl
Xcode升级之后插件失效解决办法 ( 1.打开终端,输入以下代码获取到DVTPlugInCompatibilityUUID defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID (2.然后输入如下命【最后一项是获取到的DVTPlugInCompatibilityUUID】 find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add 7FDF5C7A-131F-4ABB-9EDC-8C5F8F0B8A90
复习
1.程序的生命周期
2.UIWindow : UIWindow是一种特殊的UIView
当Level层级相同的时候,只有第一个设置为KeyWindow的显示出来,后面同级的再设置KeyWindow也不会显示。
3.视图层级关系 : tag交换视图层级 insertsubView
4.模态切换:present dismiss
俯视图:A dismiss 子视图:B 》》presented取得控制器B
5.UITextField (clear button model,placeholder , )
6.动画4要素 : 持续时间 线性规律 动画类型 回调方法 其他配置(重复次数 是否反向执行) transform 变幻属性 : CGAffine... 设置转场效果 transition
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:<#(UIView *)#> cache:NO];
7.UInavigation;
标题颜色:
[self.navigationController.navigationBar setTitleTextAttributes:
@{NSFontAttributeName:[UIFont systemFontOfSize:19],
NSForegroundColorAttributeName:[UIColor redColor]}];
[class apperance]
iOS5及其以后提供了一个比较强大的工具UIAppearance,我们通过UIAppearance设置一些UI的全局效果,这样就可以很方便的实现UI的自定义效果又能最简单的实现统一界面风格,它提供如下两个方法。
(id)appearance 这个方法是统一全部改,比如你设置UINavBar的tintColor,你可以这样写:[[UINavigationBar appearance] setTintColor:myColor];
(id)appearanceWhenContainedIn:(Class <>)ContainerClass,... 这个方法可设置某个类的改变:例如:设置UIBarButtonItem 在UINavigationBar、UIPopoverController、UITabbar中的效果。就可以这样写 [[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], [UIPopoverController class],[UITabbar class] nil] setTintColor:myPopoverNavBarColor];
UIApplication
[UIApplication shareApplication]
main () > UIapplicationMain ()
内容: UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
工作:
1,从给定的类名初始化应用程序对象,初始化UIappllication或者子类对象的一个实例,(nil 则 默认UIApplication)
2.从给定的应用程序委托类,初始化一个应用程序委托,并把该委托设置为应用程序的委托,(nil : 访问Info.plist 寻找nib文件,获取应用程序委托)
3.启动主时间循环
单例
设置状态栏信息
8.UITabBarController 标签控制器
9.获取状态栏 1.UIApplication 2.info.plist 3.- (UIStatusBarStyle)preferredStatusBarStyle
10.UITableView : delegate datasource 代理 自定义头部,尾部视图 自定义cell 继承,重写 增删查改
11.UIScrollView : contentSize contentOffSet cover flow 3D立体滚动
12.网络请求:get post
13.音乐播放 : 全局断点
14.传值