1:动画属性UIViewAnimationOptions说明

a:常规动画属性设置(可以同时选择多个进行设置)

UIViewAnimationOptionLayoutSubviews:动画过程中保证子视图跟随运动。

UIViewAnimationOptionAllowUserInteraction:动画过程中允许用户交互。

UIViewAnimationOptionBeginFromCurrentState:所有视图从当前状态开始运行。

UIViewAnimationOptionRepeat:重复运行动画。

UIViewAnimationOptionAutoreverse :动画运行到结束点后仍然以动画方式回到初始点。

UIViewAnimationOptionOverrideInheritedDuration:忽略嵌套动画时间设置。

UIViewAnimationOptionOverrideInheritedCurve:忽略嵌套动画速度设置。

UIViewAnimationOptionAllowAnimatedContent:动画过程中重绘视图(注意仅仅适用于转场动画)。

UIViewAnimationOptionShowHideTransitionViews:视图切换时直接隐藏旧视图、显示新视图,而不是将旧视图从父视图移除(仅仅适用于转场动画)
UIViewAnimationOptionOverrideInheritedOptions :不继承父动画设置或动画类型。

b.动画速度控制(可从其中选择一个设置)

UIViewAnimationOptionCurveEaseInOut:动画先缓慢,然后逐渐加速。

UIViewAnimationOptionCurveEaseIn :动画逐渐变慢。

UIViewAnimationOptionCurveEaseOut:动画逐渐加速。

UIViewAnimationOptionCurveLinear :动画匀速执行,默认值。

c.转场类型(仅适用于转场动画设置,可以从中选择一个进行设置,基本动画、关键帧动画不需要设置)

UIViewAnimationOptionTransitionNone:没有转场动画效果。

UIViewAnimationOptionTransitionFlipFromLeft :从左侧翻转效果。

UIViewAnimationOptionTransitionFlipFromRight:从右侧翻转效果。

UIViewAnimationOptionTransitionCurlUp:向后翻页的动画过渡效果。

UIViewAnimationOptionTransitionCurlDown :向前翻页的动画过渡效果。

UIViewAnimationOptionTransitionCrossDissolve:旧视图溶解消失显示下一个新视图的效果。

UIViewAnimationOptionTransitionFlipFromTop :从上方翻转效果。

UIViewAnimationOptionTransitionFlipFromBottom:从底部翻转效果。

2:复杂UITableCellView,移除重用

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{__weak typeof(self) weakSelf = self;BLSPayOrderModel *model=self.dataList[indexPath.section];BLSProjectMoneyCompleteCell *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([BLSProjectMoneyCompleteCell class])];if (cell) {cell=[[BLSProjectMoneyCompleteCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([BLSProjectMoneyCompleteCell class])];}else{//删除cell的所有子视图while ([cell.contentView.subviews lastObject] != nil){[(UIView*)[cell.contentView.subviews lastObject] removeFromSuperview];}}cell.myPayOrderModel=model;return cell;
}

3:本地通知运用

输入所要发送的信息 ,同时将label的值通过button方法调用传递,
- (IBAction)buttonClick:(id)sender {//添加 字典,将label的值通过key值设置传递NSDictionary *dict =[[NSDictionary alloc] initWithObjectsAndKeys:self.textFieldOne.text,@"textOne",self.textFieldTwo.text,@"textTwo", nil];//创建通知NSNotification *notification =[NSNotification notificationWithName:@"tongzhi" object:nil userInfo:dict];//通过通知中心发送通知
    [[NSNotificationCenter defaultCenter] postNotification:notification];[self.navigationController popViewControllerAnimated:YES];}
在发送通知后,在所要接收的控制器中注册通知监听者,将通知发送的信息接收
- (void)viewDidLoad {[super viewDidLoad];//注册通知[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tongzhi:) name:@"tongzhi" object:nil];}
- (void)tongzhi:(NSNotification *)text{NSLog(@"%@",text.userInfo[@"textOne"]);NSLog(@"-----接收到通知------");}
移除通知:removeObserver:和removeObserver:name:object:
其中,removeObserver:是删除通知中心保存的调度表一个观察者的所有入口,而removeObserver:name:object:是删除匹配了通知中心保存的调度表中观察者的一个入口。
这个比较简单,直接调用该方法就行。例如:
[[NSNotificationCenter defaultCenter] removeObserver:observer name:nil object:self];
注意参数notificationObserver为要删除的观察者,一定不能置为nil。

 

4:iOS中的URL Scheme知识点

在iOS的SDK中提供了一个非常有意思的功能,它能将iOS的Application同自定义的URL Schema绑定,同时可以通过URL Scheme在浏览器或者是其他应用中启动这个Application。本文主要介绍如何通过URL Scheme的方式启动应用和参数的传递。

1、首先在*-Info.plist中添加一行,选择URL types,效果如下图所示:

2、在展开的Item 0中填写URL identifier,这个用来唯一标识用户自定义的URL Scheme,推荐使用域名的反转形式,如:com.devzeng.demo

3:在Item 0中添加新的一行,选择URL Schemes

4、展开URL Schemes,在Item 0中输入自定义的Scheme的名称。在这里只需要输入自定义的Scheme的名称即可,不需要加上://,例如这里输入的是devzeng,那么对应的自定义的URL就是devzeng://,这里可以输入多个。

5、最后一个完整的示例效果图:

使用URL Scheme 

 1、在Safari中使用  在Safari中直接在浏览器的地址栏中输入devzeng://,即可启动刚才的应用  

2、在其他的应用程序中使用  在需要调用的地方使用下面的代码即可实现调用

NSString *customURL = @"devzeng://";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:customURL]];

3、参数的传递

- (void)openOtherApp
{NSString *customURL = @"devzeng://?token=123abct®istered=1";[[UIApplication sharedApplication] openURL:[NSURL URLWithString:customURL]];
}

在AppDelegate中可以实现下面的两个方法  

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url  

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation  

说明: 

 (1)上面的两个函数作用是一致的只是参数不同而已,函数的返回值是BOOL,如果为YES表示可以打开,NO表示不可以打开应用程序

 (2)参数可以通过[url query]来获取,比如使用的是devzeng://?token=123abct&registered=1那么通过[url query]获取到的值是token=123abct&registered=1,然后可以通过这些数据再作相应的处理. 

 (3)调用的应用程序的Bundle ID可以通过sourceApplication参数获取

 (4)通过[url scheme]可以获取到请求的URL Scheme,比如是通过devzeng://打开的那么[url scheme]的值就是devzeng。可以通过不同的参数来判断来源的合法性 

 (5)示例

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{if ([sourceApplication isEqualToString:@"com.devzeng.demo.urlscheme"]){NSLog(@"调用的应用程序的Bundle ID是: %@", sourceApplication);NSLog(@"URL scheme:%@", [url scheme]);NSLog(@"URL query: %@", [url query]);return YES;}else{return NO;}
}

*注意 可以创建多个的scheme,除了在plist文件里面创建还可以在Targets里面的Info--URL Types创建

IOS开发基础知识--碎片32相关推荐

  1. iOS开发基础知识--碎片44

    iOS开发基础知识--碎片44  iOS开发基础知识--碎片44 1:App跳转至系统Settings 跳转在IOS8以上跟以下是有区别的,如果是IOS8以上可以如下设置: NSURL *url = ...

  2. iOS开发基础知识--碎片27

     iOS开发基础知识--碎片27 1:iOS中的round/ceil/floorf extern float ceilf(float); extern double ceil(double); ext ...

  3. iOS开发基础知识--碎片37

    iOS开发基础知识--碎片37 iOS开发基础知识--碎片37 iOS开发基础知识--碎片37 1:iOS 使用NJKWebViewProgress做webview进度条 引入头文件: #import ...

  4. iOS开发基础知识--碎片41

    iOS开发基础知识--碎片41 1:UIWebView加载本地的HTML NSString *path = [[NSBundle mainBundle] bundlePath]; NSURL *bas ...

  5. iOS开发基础知识--碎片19

    iOS开发基础知识--碎片19  1:键盘事件顺序 UIKeyboardWillShowNotification // 键盘显示之前 UIKeyboardDidShowNotification // ...

  6. IOS开发基础知识--碎片33

    1:AFNetworking状态栏网络请求效果 直接在AppDelegate里面didFinishLaunchingWithOptions进行设置 [[AFNetworkActivityIndicat ...

  7. IOS开发基础知识--碎片14

    1:ZIP文件压缩跟解压,使用ZipArchive 创建/添加一个zip包ZipArchive* zipFile = [[ZipArchive alloc] init];//次数得zipfilenam ...

  8. IOS开发基础知识--碎片13

    1:运行程序报the file couldn't be opened because you don't have permission to view it 解决办法:项目->targets- ...

  9. IOS开发基础知识--碎片45

    1:iOS SEL的简单总结 SEL就是对方法的一种包装.包装的SEL类型数据它对应相应的方法地址,找到方法地址就可以调用方法 a.方法的存储位置 在内存中每个类的方法都存储在类对象中 每个方法都有一 ...

最新文章

  1. UVA10003 切木棍 Cutting Sticks(区间DP、细节)
  2. 《如何高效学习》读书笔记(一)——整体性学习策略
  3. Asp.net 中 OnClientClick 与 OnClick 的执行顺序
  4. 分类VS标签,一文带你看懂数据中台为什么要建标签体系?
  5. 算法与数据结构 -- 排序和查找(五)
  6. TCP/IP协议(二)tcp/ip基础知识
  7. 汉克尔变换matlab,HankelTransform
  8. java流的序列化_Java中的对象流和序列化介绍
  9. java json和对象互相装换
  10. LeetCode448-找到所有数组中消失的数字(原地数组)
  11. python image模块需要安装吗_python Image模块安装
  12. 无法安装Visual Studio 2010 Service Pack 1
  13. 得一微YS9083XT量产工具及方法FW190402
  14. openGL渲染管线流程-顶点着色器,曲面细分着色器,几何着色器,片元着色器顺序
  15. springboot 删除路径下面所有文件_[原创]springboot 中 resources 资源目录里面的文件夹压缩下载...
  16. SAP PS 第9节 合并采购申请、组合WBS之详解
  17. flink理论干货笔记(6)
  18. 黄聪:Destoon供求栏目下旺旺无法正常显示,点击提醒“会员名不存在”
  19. 献给经常加班熬夜的你们
  20. 网络环境下自主学习的诱惑

热门文章

  1. java抢答器代码_java竞争抢答器
  2. docker知识5:在WSL2的ubuntu20.04环境安装使用docker
  3. java ear war_[JAVA语法]怎样制作ear,war文件
  4. 【html+css练习】小白使用html+css模拟音乐播放器构造了网页音乐播放器--1
  5. html5 video css样式修改,htmlvideo标签用法
  6. java升级为jdk1.8_jdk1.7升级为1.8
  7. easyui复杂表单_EasyUI中实现form表单提交的示例分享
  8. Android中minSdkVersion、targetSdkVersion、maxSdkVersion的作用
  9. 《C#设计模式》PPT及源码分享
  10. Redis复制(Replication)