Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【iOS】UI基础Day2-笔记(毛玻璃、帧动画、音效等)

【iOS】UI基础Day2-笔记(毛玻璃、帧动画、音效等)

作者头像
肓己
发布于 2021-08-12 02:23:19
发布于 2021-08-12 02:23:19
66900
代码可运行
举报
文章被收录于专栏:linux commandslinux commands
运行总次数:0
代码可运行

毛玻璃效果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//1.加毛玻璃
UIToolbar *toolbar = [[UIToolbar alloc] init];
//2.设置frame
toolbar.frame = self.bgImageView.bounds;
//3.设置样式和透明度
toolbar.barStyle = UIBarStyleBlack;
toolbar.alpha = 0.98;
//4.加到背景图片上
[self.bgImageView addSubview:toolbar];

UIImageView的fram设置

  • 方式一
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UIImageView *imageView = [[UIImageView alloc] init];
imageView.image = [UIImage imageNamed:@"1"];
imageView.frame = CGRectMake(100, 100, 267, 400);
imageView.frame = (CGRect){{100,100},{100,150}};
[self.view addSubview:imageView];
  • 方式二
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UIImageView *imageView = [[UIImageView alloc] init];
UIImage *image = [UIImage imageNamed:@"1"];
imageView.frame = CGRectMake(100, 100, image.size.width, image.size.height);
imageView.image = image;
[self.view addSubview:imageView];
  • 方式三
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UIImage *image = [UIImage imageNamed:@"1"];
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 167, 300)];
imageView.image = image;
[self.view addSubview:imageView];
  • 方式四
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"1"]];
imageView.center = CGPointMake(self.view.frame.size.width * 0.5, self.view.frame.size.height * 0.5);
[self.view addSubview:imageView];

UIImageView的帧动画

  • 1.加载所有图片
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
NSMutableArray<UIImage *> *imageArr = [NSMutableArray array];
for (int i = 0; i < 20; ++i) {
//获得图片名称
NSString *imageName = [NSString stringWithFormat:@"%d",i+1];
//创建UImage对象
UIImage *image = [UIImage imageNamed:imageName];
//加入数组
[imageArr addObject:image];
}
  • 2.设置动画图片
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
self.imageView.animationImages = imageArr;
  • 3.设置动画的播放次数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
self.imageView.animationRepeatCount = 0;
  • 4.设置动画播放时长
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
self.imageView.animationDuration = 1.0;
  • 5.开始动画
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[self.imageView startAnimating];
  • 6.停止动画
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[self.imageView stopAnimating];

Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘* -[__NSArrayM insertObject:atIndex:]: object cannot be nil’


拳皇动画

  • 0.加载图片的方法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-(NSArray*)loadAllImagesWithimagePrefix:(NSString*)
imagePrefix count:(int)count
{
NSMutableArray<UIImage *> *imageArr = [
NSMutableArray array];
for (int i = 0; i < count; ++i) {
//获得图片名称
NSString *imageName = [NSString
stringWithFormat:@"%@_%d",imagePrefix,i+1];
//创建UIImage对象
UIImage *image = [UIImage imageNamed:imageName];
//加入数组
[imageArr addObject:image];
}
return imageArr;
}
  • 1.加载站立的所有图片
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
self.standImageArr = [self
loadAllImagesWithimagePrefix:@"stand" count:10];
  • 2.加载小招的所有图片
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
self.smillSkillImageArr = [self
loadAllImagesWithimagePrefix:@"xiaozhao3" count:39];
  • 3.加载大招的所有图片
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
self.bigSkillImageArr = [self
loadAllImagesWithimagePrefix:@"dazhao" count:87];
  • 4.站立按钮的点击事件
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-(IBAction)stand{
//设置图片动画
self.imageView.animationImages = self.standImageArr;
//设置动画的播放次数
self.imageView.animationRepeatCount = 0;
//设置动画播放时长
self.imageView.animationDuration = 1;
//开始动画
[self.imageView startAnimating];
}
  • 5.小招按钮的点击事件
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-(IBAction)smallSkill{
//设置图片动画
self.imageView.animationImages = self.smillSkillImageArr;
//设置动画的播放次数self.imageView.animationRepeatCount = 1;
//设置动画播放时长
self.imageView.animationDuration = 2.5;
//开始动画[self.imageView startAnimating];
//站立(延迟执行)
// Selector 方法
// Object 参数
// afterDelay 时间
[self performSelector:@selector(stand) withObject:nil afterDelay:self.imageView.animationDuration];
}
  • 6.大招按钮的点击事件
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (IBAction)bigSkill{
//设置图片动画
self.imageView.animationImages = self.bigSkillImageArr;
//设置动画的播放次数
self.imageView.animationRepeatCount = 1;
//设置动画播放时长
self.imageView.animationDuration = 4;
//开始动画
[self.imageView startAnimating];
//站立(延迟执行)
// Selector 方法
// Object 参数
// afterDelay 时间
[self performSelector:@selector(stand) withObject:nil afterDelay:self.imageView.animationDuration];
}

拳皇动画的内存优化

  • 1.重新设置图片的加载方式
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*图片的两种加载方式:
1> imageNamed:
a. 就算指向它的指针被销毁,该资源也不会被从内存中干掉
b. 放到Assets.xcassets的图片,默认就有缓存
c. 图片经常被使用
2> imageWithContentsOfFile:
a. 指向它的指针被销毁,该资源会被从内存中干掉
b. 放到项目中的图片就不由缓存
c. 不经常用,大批量的图片*/
NSString *imagePath = [[NSBundle mainBundle]
pathForResource:imageName ofType:@"png"];
UIImage *image = [UIImage
imageWithContentsOfFile:imagePath];
  • 2.增加游戏结束按钮并设置点击事件
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (IBAction)gameOver {
//将强指针指向的内存置为空
self.standImageArr = nil;
self.smillSkillImageArr = nil;
self.bigSkillImageArr = nil;
self.imageView.animationImages = nil;
}

IOS播放音效

需要导入框架#import

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@property (nonatomic, strong) AVPlayer *player;
  • 2.创建播放器
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//1 资源的URL地址
NSURL *url = [[NSBundle mainBundle]
URLForResource:@"mySong1.mp3" withExtension:nil];
//2 创建播放器曲目
AVPlayerItem *playItem = [[AVPlayerItem
alloc] initWithURL:url];
//3 创建播放器
self.player = [[AVPlayer alloc]
initWithPlayerItem:playItem];
  • 3.播放音效
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[self.player play];

拳皇中播放音效

  • 1.在界面被加载时创建播放音乐器
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//创建播放器
self.player = [[AVPlayer alloc] init];
  • 2.播放音乐
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//播放
NSURL *url = [[NSBundle mainBundle] URLForResource:musicName withExtension:nil];

AVPlayerItem *playItem = [[AVPlayerItem alloc] initWithURL:url];

[self.player replaceCurrentItemWithPlayerItem:playItem];

[self.player play];
self.player.rate = 1.5;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/04/10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
[工具分享]备份Sqlserver元数据工具,多给自己一点后悔药可吃。
因Sqlserver数据库是一款非常完善的商业数据库,微软给它打造了SSMS客户端管理,并配置了大量的命令让我们可以轻松管理它,当然备份整个数据库的元数据,也只需界面上一个操作即可完成。
Excel催化剂
2021/08/19
5010
[工具分享]备份Sqlserver元数据工具,多给自己一点后悔药可吃。
[PowerShell]人人都值得学一点PowerShell实现自动化(6)自动化微软系产品
在DOS命令和CMD命令中,都是一条命令执行一个过程,是面向过程的调用方式,而PowerShell之所以敢称作Power,就是其比一般地Shell不同之处是,其可以调用整个dotNET的类型库,可以用面向对象的方式去访问和执行复杂的对象模型如Sqlserver的SMO、AMO模型和各种COM模型如OFFICE对象模型等。
Excel催化剂
2021/08/19
1.9K0
[PowerShell]人人都值得学一点PowerShell实现自动化(6)自动化微软系产品
「PowerBI」丢弃SSDT选择TabularEditor成为你的首选建模开发工具(上)
在SSDT中开发SSAS数据模型,整体体验是非常棒的,继承了微软一贯的图形化界面操作的友好度,特别是对Excel和PowerBIDeskTop群体来说,无缝过渡到SSDT的操作。
Excel催化剂
2021/08/19
2.4K0
「PowerBI」丢弃SSDT选择TabularEditor成为你的首选建模开发工具(上)
「数据ETL」从数据民工到数据白领蜕变之旅(四)-有了PowerQuery还需要SSIS吗?
作为一款自助式BI的轻量ETL工具,PowerQuery的确可以让我们享受许多数据处理的便利,无需专业的能力,大部分仅需通过界面的操作即可完成,无可否认PowerQuery的使用体验是非常棒的。
Excel催化剂
2021/08/19
3.7K0
「数据ETL」从数据民工到数据白领蜕变之旅(四)-有了PowerQuery还需要SSIS吗?
「Azure」数据分析师有理由爱Azure之七-从零开始做一个完整的Azure AS项目部署
对于PowerBI爱好者群体,多数是玩Excel和PowerBIDesktop,没有上升到企业级BI的层次,对在企业级BI的SSAS上建模的工具比较陌生,这里简单给大家作一点点工具介绍。
Excel催化剂
2021/08/19
1.1K0
「Azure」数据分析师有理由爱Azure之七-从零开始做一个完整的Azure AS项目部署
全球首发,PBI催化剂更新,PowerBI参数字段表再爱多一点,批量创建,纯界面零代码,Excel数据源一键生成。
除此之外,另增加批量创建表关系功能,对同类事实表追加关系变得SoEasyShu,又是批量完成,爽到爆。
Excel催化剂
2023/04/26
2.2K0
全球首发,PBI催化剂更新,PowerBI参数字段表再爱多一点,批量创建,纯界面零代码,Excel数据源一键生成。
「Azure」数据分析师有理由爱Azure之五-Azure Analysis Services服务实操
在企业内推行数据化运营,较为可行的方式是启动企业BI项目,让零散的数据都进入到数据仓库中进行数据的清洗整合,最终数据仓库内的数据,按业务分析的需要进行语义转换,通过数据建模的技术将其重新构建成多维分析模型,输送给前端用户使用时,前端用户基本只需按自己的业务分析需求,进行简单的拖拉字段,即可完成自己所需的分析报表需求,并且仅查看到自身权限范围内的数据。
Excel催化剂
2021/08/19
1.5K0
「Azure」数据分析师有理由爱Azure之五-Azure Analysis Services服务实操
[PowerBI]中国首款重量级PowerBIDeskTop外部工具问世
过往的PowerBIDeskTop,它是一个独立的软件,不像Excel那样可以有二次开发的接口,但7月份更新PowerBIDeskTop后,已经开放了外部工具,单独有一个外部工具的选项卡。
Excel催化剂
2021/08/18
4.1K0
盘点一下数据库的误操作有哪些后悔药?
无论是开发、测试,还是DBA,都难免会涉及到数据库的操作,比如:创建某张表,添加某个字段、添加数据、更新数据、删除数据、查询数据等等。
苏三说技术
2021/03/30
7970
[PBI催化剂]国际水准,中国首款重量级PowerBIDeskTop外部工具问世
SQLBI的工具,有兴趣的可了解下,需要点英文阅读能力:https://www.sqlbi.com/tools/analyze-in-excel-for-power-bi-desktop/
Excel催化剂
2021/08/18
3.1K0
王者回归,PBI催化剂2.0发布,回归初心,个人永久性免费使用全部功能
PBI催化剂是笔者两年前开发的国内首款PowerBI外部工具,用于在PowerBI模型和报表层的元数据批量管理。
Excel催化剂
2022/09/02
4.8K0
王者回归,PBI催化剂2.0发布,回归初心,个人永久性免费使用全部功能
关于手机数据丢失,你知道哪些?
近年来,随着手机的不断更新换代,手机存储空间越来越大,用户储存的数据越来越多。有时候,你打开手机聊天软件想要寻找几个月前的文档和聊天记录,却发现已经被自己不小心清理掉。有时候手机不小心出现故障,也造成了数据丢失的惨案。
森罗万象
2019/04/30
1.4K0
关于手机数据丢失,你知道哪些?
「PowerBI」分析服务多维数据结构重回关系数据库的一大绝招
第3波-与PowerbiDesktop互通互联 第5波-使用DAX查询从PowerbiDeskTop中获取数据源 第6波-导出PowerbiDesktop模型数据字典
Excel催化剂
2021/08/19
2.1K0
「Sqlserver」数据分析师有理由爱Sqlserver-像使用Excel一般地使用Sqlserver
在微软系的产品系列中,大家都可以从网络上非常容易找寻得到,微软也是大放水,对盗版破解容忍度非常高。
Excel催化剂
2021/08/19
1.3K0
「Azure」数据分析师有理由爱Azure之十-使用PowerShell自动化AzureAS
前面推文中曾介绍过PowerShell的作用,并有提供了一个MicroSoft Learn的教程地址,现再次贴出:https://docs.microsoft.com/zh-cn/learn/modules/automate-azure-tasks-with-powershell/
Excel催化剂
2021/08/19
9300
「Azure」数据分析师有理由爱Azure之十-使用PowerShell自动化AzureAS
Linux也有后悔药,五种方案快速恢复你的系统
新手在学习Linux系统的时候,难免会遇到命令输错,或系统出错的难题。那么如何快速解决呢?本文就先给你一个后悔药,让你快速备份并恢复Linux系统。本文将以Ubuntu为例,在这之前,你需要一台服务器,你可以免费使用腾讯云开发者实验室进进行试验。
信姜缘
2018/07/19
2.9K0
「Sqlserver」数据分析师有理由爱Sqlserver之八-最刚需的数据导入导出功能-导出篇
和前一篇提及的,数据在各业务系统里的导出接口十分单一,大部分是一些Excel导出的功能。
Excel催化剂
2021/08/19
1.4K0
跨库数据备份还原、迁移工具
数据开发过程中,为了确保生产数据库安全,一般将实时数据同步、备份到本地测试数据库完成开发工作,最后部署应用。
用户8949263
2022/04/08
1K0
跨库数据备份还原、迁移工具
「Azure」数据分析师有理由爱Azure之三-对照Sqlserver学Azure
Sqlserver的内容非常广大,笔者也不是这方面的专家,所以整个系列的文章必须是在一个狭隘的小范围内讨论。
Excel催化剂
2021/08/19
1.4K0
「Azure」数据分析师有理由爱Azure之三-对照Sqlserver学Azure
[PowerShell]人人都值得学一点PowerShell实现自动化(2)有哪些可用的场景及方式?
虽然说PowerShell也是在dotNET体系内,凡是dotNET语言可以完成的,它也几乎可以同样完成,但完成的代价可能不一,有些部分可能没有使用其他语言如C#等语言来得方便好用。 同样地PowerShell作为一门定位于帮助运维人员实现日常工作自动化的脚本语言,很多方面有其独特的优势所在,虽然用其他语言、工具一样可以完成,但PowerShell完成得更漂亮,更方便快捷。
Excel催化剂
2021/08/20
2.1K0
[PowerShell]人人都值得学一点PowerShell实现自动化(2)有哪些可用的场景及方式?
推荐阅读
[工具分享]备份Sqlserver元数据工具,多给自己一点后悔药可吃。
5010
[PowerShell]人人都值得学一点PowerShell实现自动化(6)自动化微软系产品
1.9K0
「PowerBI」丢弃SSDT选择TabularEditor成为你的首选建模开发工具(上)
2.4K0
「数据ETL」从数据民工到数据白领蜕变之旅(四)-有了PowerQuery还需要SSIS吗?
3.7K0
「Azure」数据分析师有理由爱Azure之七-从零开始做一个完整的Azure AS项目部署
1.1K0
全球首发,PBI催化剂更新,PowerBI参数字段表再爱多一点,批量创建,纯界面零代码,Excel数据源一键生成。
2.2K0
「Azure」数据分析师有理由爱Azure之五-Azure Analysis Services服务实操
1.5K0
[PowerBI]中国首款重量级PowerBIDeskTop外部工具问世
4.1K0
盘点一下数据库的误操作有哪些后悔药?
7970
[PBI催化剂]国际水准,中国首款重量级PowerBIDeskTop外部工具问世
3.1K0
王者回归,PBI催化剂2.0发布,回归初心,个人永久性免费使用全部功能
4.8K0
关于手机数据丢失,你知道哪些?
1.4K0
「PowerBI」分析服务多维数据结构重回关系数据库的一大绝招
2.1K0
「Sqlserver」数据分析师有理由爱Sqlserver-像使用Excel一般地使用Sqlserver
1.3K0
「Azure」数据分析师有理由爱Azure之十-使用PowerShell自动化AzureAS
9300
Linux也有后悔药,五种方案快速恢复你的系统
2.9K0
「Sqlserver」数据分析师有理由爱Sqlserver之八-最刚需的数据导入导出功能-导出篇
1.4K0
跨库数据备份还原、迁移工具
1K0
「Azure」数据分析师有理由爱Azure之三-对照Sqlserver学Azure
1.4K0
[PowerShell]人人都值得学一点PowerShell实现自动化(2)有哪些可用的场景及方式?
2.1K0
相关推荐
[工具分享]备份Sqlserver元数据工具,多给自己一点后悔药可吃。
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验