前往小程序,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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
UI动画效果
UI界面的动画效果总结 方式1:头尾式 //开始动画 [UIView beginAnimations:nil context:nil]; //设置动画时间 [UIView setAnimationDuration:2.0]; /* 需要执行动画的代码 */ //提交动画 [UIView commitAnimations]; 方式2:block式 [UIView animateWithDuration:2.0 delay:1.0 options:kNilOptions animations:^{
用户1941540
2018/05/11
1.8K0
【IOS 开发】基本 UI 控件详解 (UISegmentedControl | UIImageView | UIProgressView | UISlider | UIAlertView )
转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50163725
韩曙亮
2023/03/27
3.5K0
【IOS 开发】基本 UI 控件详解 (UISegmentedControl | UIImageView | UIProgressView | UISlider | UIAlertView )
iOS小技能(开发规范): weak和strong修饰符的规范使用
当一个对象不再有strong类型的指针指向它的时候 它会被释放 ,即使还有weak型指针指向它。一旦最后一个strong型指针离去 ,这个对象将被释放,所有剩余的weak型指针都将被清除。
公众号iOS逆向
2022/08/22
9570
iOS小技能(开发规范): weak和strong修饰符的规范使用
ios开发基础知识 - 1
输出 command+shift+r NSLog(@"log: %@ ", myString);  NSLog(@"log: %f ", myFloat);  NSLog(@"log: %i ", myInt); 显示图片 CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 100.0f); UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect]; [myImage
用户1172164
2018/01/16
6400
iOS自带实现高斯模糊效果引iOS 7 UIToolbariOS 8 UIBlurEffect结
什么叫高斯模糊效果,通俗地说,就是毛玻璃效果,从iOS 7以来,就频繁地被设计使用,如果用得好,效果会显得非常的好。我们来看一个例子:
Cloudox
2021/11/23
8690
iOS自带实现高斯模糊效果引iOS 7 UIToolbariOS 8 UIBlurEffect结
【 iOS 应用开发 】 UIKit 控件 ( 代码生成控件 | UIView 属性方法 | Storyboard | Bundle | Property List | 动画 | 图片内存优化 )
项目创建流程 : ① 选择 Create a new Xcode project , ② 创建 Single View Application 项目 , ③ 设置项目信息 , ④ 设置代码路径并创建 ;
韩曙亮
2023/03/27
4.2K0
【 iOS 应用开发 】 UIKit 控件 ( 代码生成控件 | UIView 属性方法 | Storyboard | Bundle | Property List | 动画 | 图片内存优化 )
ios手势复习值之换图片-转场动画(纯代码)
目标:实现通过手势进行图片的切换   通过左扫右扫 来实现(纯代码) 添加三个属性 1uiImageView 用来显示图片的view        2 index 用来表示图片的索引       3 ISLeft 判断是不是向左滑   下边是详细的代码: - (void)viewDidLoad { [super viewDidLoad]; self.index = 0; self.ISLeft = YES; _imageView = [[UIImageView alloc]i
用户1219438
2018/02/01
7270
iOS-UI控件之UIImageView
contentMode属性 带有scale单词的:图片有可能会拉伸 UIViewContentModeScaleToFill 将图片拉伸至填充整个imageView 图片显示的尺寸跟imageView的尺寸是一样的 带有aspect单词的:保持图片原来的宽高比 UIViewContentModeScaleAspectFit 保证刚好能看到图片的全部 UIViewContentModeScaleAspectFill 拉伸至图片的宽度或者高度跟imageView一样 没有scale单词的:图片绝
用户1941540
2018/05/11
9170
Bison教你1分钟集成3D无限翻转的Banner
gift.png 这是一个很炫的广告轮播功能,很多APP都有这个功能,比如说礼物说 还有几个忘记名字了。。。 在这里给大家简单的讲下该功能是怎么实现的 首先是定义一下基本的控件,代码如下 - (void)show3DBannerView{ _imageArr = @[@"0.jpg",@"1.jpg",@"2.jpg",@"3.jpg",@"4.jpg",@"5.jpg"]; //定义图片控件 _imageView=[[UIImageView alloc]init]
Bison
2018/06/28
6200
两种通过Plist加载图片的方法及问题,九宫格的算法,字典转模型1. 序列帧动画实现2. 图片浏览器-两种加载plist的方式3. 图片浏览器-内存问题4 MVC简单介绍和类前缀5 应用管理-两种加载
1. 序列帧动画实现 1方式1: [UIImage animatedImageWithImages:**动画图片数组** duration:**持续时间**]; // 可以获取一个能做动画的UIImage对象"gif图片" 2 方式2: self.imageView.animationImages = array; // 装图片的数组(需要做动画的图片数组) self.imageView.animationDuration = 2; // 动画时间 self.imageView.animationRep
stanbai
2018/06/28
9210
iOS-QQ音乐播放器的简单实现
一. QQ音乐播放器的简单实现 每个音乐播放器的实现都大致相同,个人认为难点在于歌曲播放与Slider的同步,歌词的解析与播放的同步。这些过程虽然繁琐,但是理解起来并不难。先来看看简单实现结果吧。 Q
xx_Cc
2018/05/10
2.9K0
【iOS】教你用ZFPlayer+KTVHTTPCache搭建缓存,预加载的播放器
mgr实现ZFPlayerMediaPlayback协议,然后在初始化时,开启本地服务器
MapleYe
2020/03/31
8K7
【iOS】教你用ZFPlayer+KTVHTTPCache搭建缓存,预加载的播放器
CATransition自定义转场动画
CATransition继承自CAAnimation, 所以用法跟CAAnimation差不多
周希
2019/10/15
5520
iOS 毛玻璃
继承关系:毛玻璃效果的继承于nsobject  在UIkit框架中所以应用的时候,导入uikit框架即可。
星宇大前端
2022/12/03
2460
实践-小效果 V
关键效果设置:在改变tableHeaderView的高度后,再手动调用下 Tb 的 setTableHeaderView方法。
進无尽
2018/09/12
1.1K0
实践-小效果 V
SceneKit - 提供两种最常用的将序列帧动画渲染到模型上的方式
这个时候,你运行程序是没有动画效果的,因为模型是静止的,scenekit 不会对静止的模型实时渲染,这个时候要让模型渲染imageview 有两种办法,第一种就是让模型小幅度运动,但让用户察觉不到,另外一种方式如下
酷走天涯
2019/06/11
9920
SceneKit - 提供两种最常用的将序列帧动画渲染到模型上的方式
iOS-自定义View的封装
xy_ss
2023/11/22
3140
iOS-自定义View的封装
iOS中UIImageView用法总结 原
- (instancetype)initWithImage:(UIImage *)image;
珲少
2018/08/16
5410
iOS中播放gif动态图的方式探讨 原
    在iOS开发中,UIImageView类专门来负责图片数据的渲染,并且UIImageView也有帧动画的方法来播放一组图片,但是对于gif类型的数据,UIImageView中并没有现成的接口提供给开发者使用,在iOS中一般可以通过两种方式来播放gif动态图,一种方式是通过ImageIO框架中的方法将gif文件中的数据进行解析,再使用coreAnimation核心动画来播放gif动画,另一种方式计较简单,可以直接通过webView来渲染gif图。
珲少
2018/08/15
1.9K0
iOS中播放gif动态图的方式探讨
                                                                            原
底牌项目中设置论坛中各个模块头图的代码
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/54906641
用户1451823
2018/09/13
5740
推荐阅读
相关推荐
UI动画效果
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验