IOS开发基础知识--碎片32
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®istered=1那么通过[url query]获取到的值是token=123abct®istered=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相关推荐
- iOS开发基础知识--碎片44
iOS开发基础知识--碎片44 iOS开发基础知识--碎片44 1:App跳转至系统Settings 跳转在IOS8以上跟以下是有区别的,如果是IOS8以上可以如下设置: NSURL *url = ...
- iOS开发基础知识--碎片27
iOS开发基础知识--碎片27 1:iOS中的round/ceil/floorf extern float ceilf(float); extern double ceil(double); ext ...
- iOS开发基础知识--碎片37
iOS开发基础知识--碎片37 iOS开发基础知识--碎片37 iOS开发基础知识--碎片37 1:iOS 使用NJKWebViewProgress做webview进度条 引入头文件: #import ...
- iOS开发基础知识--碎片41
iOS开发基础知识--碎片41 1:UIWebView加载本地的HTML NSString *path = [[NSBundle mainBundle] bundlePath]; NSURL *bas ...
- iOS开发基础知识--碎片19
iOS开发基础知识--碎片19 1:键盘事件顺序 UIKeyboardWillShowNotification // 键盘显示之前 UIKeyboardDidShowNotification // ...
- IOS开发基础知识--碎片33
1:AFNetworking状态栏网络请求效果 直接在AppDelegate里面didFinishLaunchingWithOptions进行设置 [[AFNetworkActivityIndicat ...
- IOS开发基础知识--碎片14
1:ZIP文件压缩跟解压,使用ZipArchive 创建/添加一个zip包ZipArchive* zipFile = [[ZipArchive alloc] init];//次数得zipfilenam ...
- IOS开发基础知识--碎片13
1:运行程序报the file couldn't be opened because you don't have permission to view it 解决办法:项目->targets- ...
- IOS开发基础知识--碎片45
1:iOS SEL的简单总结 SEL就是对方法的一种包装.包装的SEL类型数据它对应相应的方法地址,找到方法地址就可以调用方法 a.方法的存储位置 在内存中每个类的方法都存储在类对象中 每个方法都有一 ...
最新文章
- UVA10003 切木棍 Cutting Sticks(区间DP、细节)
- 《如何高效学习》读书笔记(一)——整体性学习策略
- Asp.net 中 OnClientClick 与 OnClick 的执行顺序
- 分类VS标签,一文带你看懂数据中台为什么要建标签体系?
- 算法与数据结构 -- 排序和查找(五)
- TCP/IP协议(二)tcp/ip基础知识
- 汉克尔变换matlab,HankelTransform
- java流的序列化_Java中的对象流和序列化介绍
- java json和对象互相装换
- LeetCode448-找到所有数组中消失的数字(原地数组)
- python image模块需要安装吗_python Image模块安装
- 无法安装Visual Studio 2010 Service Pack 1
- 得一微YS9083XT量产工具及方法FW190402
- openGL渲染管线流程-顶点着色器,曲面细分着色器,几何着色器,片元着色器顺序
- springboot 删除路径下面所有文件_[原创]springboot 中 resources 资源目录里面的文件夹压缩下载...
- SAP PS 第9节 合并采购申请、组合WBS之详解
- flink理论干货笔记(6)
- 黄聪:Destoon供求栏目下旺旺无法正常显示,点击提醒“会员名不存在”
- 献给经常加班熬夜的你们
- 网络环境下自主学习的诱惑
热门文章
- java抢答器代码_java竞争抢答器
- docker知识5:在WSL2的ubuntu20.04环境安装使用docker
- java ear war_[JAVA语法]怎样制作ear,war文件
- 【html+css练习】小白使用html+css模拟音乐播放器构造了网页音乐播放器--1
- html5 video css样式修改,htmlvideo标签用法
- java升级为jdk1.8_jdk1.7升级为1.8
- easyui复杂表单_EasyUI中实现form表单提交的示例分享
- Android中minSdkVersion、targetSdkVersion、maxSdkVersion的作用
- 《C#设计模式》PPT及源码分享
- Redis复制(Replication)