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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容