IOS之UIKit_Day11

day11

回顾:

1.UITabBarController

                   .viewControllers存储管理的所有控制器

                   .tabBaritem.title

                   .tabBaritem.image

                   .tabBaritem.selectedImage

                   .tabBaritrm.badgevalue

                   .tabBarController.tabBar.tintColor

                   .tabBarController.tabBar.hidden

                   .tabBarController.selectedindex可读可写的属性,用于获取或设置tabBar中激活的vc的下标

          注意:tabltem的数目不要多余5个,一旦多于5那么最后一个item自动变成“更多”点击更多后,会由单独的界面展示选项

2 OtherControl

          2.1UIsegmentedControl 分段控件

                   重要的属性:.selectedSegmentindex

                   事件:ValueChanged

 

 

          2.2Activity Indicator活动指示器

                   属性:isAnmating

                   方法:startAnimating

                            stopAnimating     

          2.3Progress View进度条

                   属性:progress(0—1的值)

          2.4Date Picker

                   属性:date

                  

          2.6Picker View

                   以多列的方式,来显示数据,数据是可以自定义的

                   通过与表格类似的流程来加载自定义的数据

                   step1:在界面中添加Picker之后选中第六个检查器 为Picker连接dataSource和Delegate属性 点击加号  连线倒左边的file owner

                   step2:遵守协议(dataSource和delegate

                   step3:实现方法:

                                      三问一答

                   1》有几列

                   2》每一列有多少行

                   3》每一行的title是什么? 每一行的内容可以是字符串也可以是复杂的View

                   4》选中某一行后的响应

3 IOS8中的警告框和操作表

          step1:创建UIAlertController的实例 并且创建实例时指明警告框的样式 还操作表的样式

          step2:创建UIAlertAction代表可点击的按钮 在创建的时候,可以借助于block把按钮的行为设定好

          step3:将action添加倒controller

          step4:使用self presentViewController的方法推出控制器

*********************************************************************

1.Storyboard 故事板

          1.1 为什么需要故事板?

                   因为在使用xib文件制作界面时存在一下两个问题

                   1》多个Xib之间的表达的界面的层级关系 以及界面的进行关系无法在第一时间准确的把握

                   2》代码中会有大量的创建目标控制器类似于initWithNibName这样的代码 一旦有任何改动那么所有initWithNibName都要修改 进行路线发生变化

                   基于以上两个问题  希望能够将App看成一个整体,能够清晰的表达界面的进行路线,以及对各个控制器的创建工作能够进行同一管理,于是从IOS5以后 推出了故事板技术来代替xib

          1.2 什么是故事板?

                   一个特殊的文件  后缀是StoryBoard本质还是一个xib文件 用于记录在应用中各个界面的行进路线能够以图形花的方式设计界面,并且对于其中使用的控制器能自动的创建

          1》程序启动时的流程

                   1.在工程中的配置中要配置Main Interface为故事板 然后在故事板中设置其实场景  ,然后启动工程 第一个展示的界面对应的控制器实例就有故事板来自动创建了

2.场景

                   值得是故事板中的第一个节点节点中可以包含控制器第一响应者出口以及该场景的过度(segue)

3 设计界面

                   设计方法:与使用xib时没有区别

                   连线动作:没有区别

                   连线输出口:没有区别

       重点需要注意的是:一旦需要对场景中的VC进行编码时,一定要单独创建一个没有xib文件的控制器类 并且将故事板中的场景的VC与创建的控制器类绑定在一起

                            如何绑定:选中场景 点击第三个检查器 选择class属性 后面的下拉框 找到对应的控制器类即可

// 在推出两个vc之前,截获segue这个动作

// 一个场景,如果有多个跳转动作

// 不管是哪个跳转动作发生,在跳转之前都会先执行这个方法

// 其中第一个参数代表的就是本次发生跳转的那个segue对象

// 在segue这个对象中,记录了一些信息,其中包含这个segue对象的标示符,包含本次segue,也就是跳转的源头控制器实例,以及跳转到的目标控制器实例

- (void)prepareForSegue:(UIStoryboardSegue *)seguesender:(id)sender{

    if([segue.identifier isEqualToString:@"s1"]) {

        //跳到SecondVC

        //目标:获取跳转到的secondVC实例

        //为这个实例的info属性赋值

       SecondViewController *svc = (SecondViewController*)segue.destinationViewController;

        svc.info= @"这是第二个vc";

    }else{

        //跳到ThirdVC

       ThirdViewController *tvc = (ThirdViewController*)segue.destinationViewController;

        tvc.info= @"这是第三个vc";

    } 

}

          1.4 使用storyBoard配置各种控制器

                   1》导航

                   2》标签

                   3》表格

                     选中表视图后 设置表是stactic(静态)还是dynamic(动态)的

                      选中的表视图中的prototypeCell (原型的单元格)在第四个检查器中修改为自定义单元格或者是4中基本样式中的一个类型

                   一定要为prototype cell 设置identifier 因为这一次的设置相当于在原来的viewDidLoad中写的regist  注册单元格

                   为标示图绑定自己创建的继承子uitableViewController的类 回答三问一答

                   期中 viewDidLoad中已经不需要使用regist方法来注册单元格了 在第三问中  只需要直接从队列中按照storyBoard中设置的identifier来dequeu单元格即可。

                   注意:

                            1。identifier区分大小写

                            2。deque单元格时,可以使用带有forIndexPath参数的那个方法了

          1.5 传值

 

时间: 2024-08-10 17:21:24

IOS之UIKit_Day11的相关文章

iOS -- SKSpriteNode类

SKSpriteNode类 继承自 SKNode:UIResponder:NSObject 符合 NSCoding(SKNode)NSCopying(SKNode)NSObject(NSObject) 框架  /System/Library/Frameworks/SpriteKit.framework 可用性 可用于iOS 7.0或者更晚的版本 声明于 SKSpriteNode.h 参考指南 Sprite Kit Progamming Guide 概览 重要提示:这是一个初步的API或者开发技术

使用fruitstrap实现命令行将IPA包安装到iOS设备上

Requirements Mac OS X. Tested on Snow Leopard only. You need to have a valid iPhone development certificate installed. Xcode must be installed, along with the SDK for your iOS version. Usage fruitstrap [-d] -b <app> [device_id] Optional -d flag laun

iOS -- SKScene类

SKScene类 继承自 SKEffectNode:SKNode:UIResponder:NSObject 符合 NSCoding(SKNode)NSCopying(SKNode)NSObject(NSObject) 框架  /System/Library/Frameworks/SpriteKit.framework 可用性 可用于iOS 7.0或者更晚的版本 声明于 SKScene.h 参考指南 Sprite Kit Progamming Guide 概览 重要提示:这是一个初步的API或者开

iOS -- SKPhysicsWorld类

SKPhysicsWorld类 继承自 NSObject 符合 NSCodingNSObject(NSObject) 框架  /System/Library/Frameworks/SpriteKit.framework 可用性 可用于iOS 7.0或者更晚的版本 声明于 SKPhysicsWorld.h 参考指南 Sprite Kit Progamming Guide 概览 重要提示:这是一个初步的API或者开发技术文档.虽然已经审阅了本文档的技术准确性,但是它不是最终的版本.本机密信息仅适用于

iOS证书说明和发布

1.首先通过钥匙串访问——证书助理——从证书颁发机构请求证书——填写证书信息(邮箱,常用名称,存储到磁盘)——存储为(自定义名称.certSigningReuqest,简称CSR文件,只是为了提交到苹果开发者账号中,然后就没用了)到本地 2.苹果开发者账号中,创建证书(Development和Production)——上传CSR文件——下载证书运行 ( xxx.cer文件) 注意:只有在当前电脑中生成本地生成证书,上传到苹果开发账号,然后下载cer文件运行后,钥匙串中才有证书以及对应的秘钥 如果

iOS开发——项目实战总结&amp;UITableView性能优化与卡顿问题

UITableView性能优化与卡顿问题 1.最常用的就是cell的重用, 注册重用标识符 如果不重用cell时,每当一个cell显示到屏幕上时,就会重新创建一个新的cell 如果有很多数据的时候,就会堆积很多cell.如果重用cell,为cell创建一个ID 每当需要显示cell 的时候,都会先去缓冲池中寻找可循环利用的cell,如果没有再重新创建cell 2.避免cell的重新布局 cell的布局填充等操作 比较耗时,一般创建时就布局好 如可以将cell单独放到一个自定义类,初始化时就布局好

解决ios下的微信打开的页面背景音乐无法自动播放

后面的项目发现,还有两个坑,需要注意下: ·本文的解决方案的核心是利用了 微信/易信 在ready的时候会有个 WeixinJSBridgeReady/YixinJSBridgeReady事件,通过监听这个事件来触发的.那有个坑就是 如果微信已经ready了,但还没执行到你监听这个ready事件的代码,那么你的监听是没用的,所以最理想的情况是,监听的js放在head前面(放在css外链之前),确保最新执行,切记!切记!. ·另一个坑就是,本文的解决方案只适合一开始就播放的背景音乐.如果你是做那种

iOS程序执行顺序和UIViewController 的生命周期(整理)

说明:此文是自己的总结笔记,主要参考: iOS程序的启动执行顺序 AppDelegate 及 UIViewController 的生命周期 UIView的生命周期 言叶之庭.jpeg 一. iOS程序的启动执行顺序 程序启动顺序图 iOS启动原理图.png 具体执行流程 程序入口进入main函数,设置AppDelegate称为函数的代理 程序完成加载[AppDelegate application:didFinishLaunchingWithOptions:] 创建window窗口 程序被激活[

iOS库--.a与.framework

一.什么是库? 库是共享程序代码的方式,一般分为静态库和动态库. 二.静态库与动态库的区别? 静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝. 动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存. 三.iOS里静态库形式? .a和.framework 四.iOS里动态库形式? .dylib和.framework 五.framework为什么既是静态库又是动态库? 系统的.framework是动态库,我们自己建立的.fram