ios-关于UI的初步学习

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.传值

你可能感兴趣的:(ios-关于UI的初步学习)