oc基本控件2

//
//  ViewController.m
//  OcDemoTest
//
//  Created by Mac on 2023/7/14.
//

#import "ViewController.h"



@interface ViewController ()
// label
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
// Use of undeclared identifier
// 全局

@property (nonatomic,strong) NSArray *standImages;
@property (nonatomic,strong) NSArray *samallImages;
@property (nonatomic,strong) NSArray *bigimage;


@end

@implementation ViewController

/***
 图片的两种加载方式
   1.imageNamed:该资源也不会被从内存中干掉
    放到Assets.xcassets的图片 默认有缓存
    使用 场景图片经常使用
  iimageWithcontentsOfFile
  指向它的指针被销毁,该资源会被内存中干掉
   放到项目中的图片没有缓存
 使用场景。不经常用,大批量图片
 */

- (void)viewDidLoad {
    [super viewDidLoad];
    // 1.加载所有站立的图片
//    NSMutableArray<UIImage *> *standImages = [NSMutableArray array];
//    for(int i = 0;i<10;i++){
//        // 获取所有图片的名称
//        NSString *imageName = [NSString stringWithFormat:@"stand_%d",i+1];
//        // 创建UIImage
//        UIImage *image = [UIImage imageNamed:imageName];
//        // 装入数组
//        [standImages addObject:image];
//    }
  self.standImages = [self loadAllImagesWithimagePrefix:@"stand" count:10];
    
//    NSMutableArray<UIImage *> *samallImages = [NSMutableArray array];
//    for(int i = 0;i<39;i++){
//        // 获取所有图片的名称
//        NSString *imageName = [NSString stringWithFormat:@"xiaozhao3_%d",i+1];
//        // 创建UIImage
//        UIImage *image = [UIImage imageNamed:imageName];
//        // 装入数组
//        [samallImages addObject:image];
//    }
   self.samallImages = [self loadAllImagesWithimagePrefix:@"xiaozhao3" count:39];
//    NSMutableArray<UIImage *> *bigimage = [NSMutableArray array];
//    for(int i = 0;i<87;i++){
//        // 获取所有图片的名称
//        NSString *imageName = [NSString stringWithFormat:@"dazhao_%d",i+1];
//        // 创建UIImage
//        UIImage *image = [UIImage imageNamed:imageName];
//        // 装入数组
//        [bigimage addObject:image];
//    }
//    self.bigimage = bigimage;
    
  self.bigimage = [self loadAllImagesWithimagePrefix:@"dazhao" count:87];
    
    // 进来就站立
    [self stand];
    
    
}

// 封装方法
// 加载所有图片
/**
   imagePrefix  名称
    count   数量
 */
-(NSArray *)loadAllImagesWithimagePrefix:(NSString *)imagePrefix count:(int)count{
    NSMutableArray<UIImage *> *images = [NSMutableArray array];
    for(int i = 0;i<count;i++){
        // 获取所有图片的名称
        NSString *imageName = [NSString stringWithFormat:@"%@_%d",imagePrefix,i+1];
        // 创建UIImage
//        UIImage *image = [UIImage imageNamed:imageName];
        NSString *imagePath = [[NSBundle mainBundle] pathForResource:imageName ofType:@"png"];
        UIImage *image = [UIImage imageWithContentsOfFile:imagePath];
        // 装入数组
        [images addObject:image];
    }
    return images;
    
}
// 放招

// 站立
- (IBAction)stand{
    // 加载所有图片
//    NSMutableArray<UIImage *> *standImages = [NSMutableArray array];
//    for(int i = 0;i<10;i++){
//        // 获取所有图片的名称
//        NSString *imageName = [NSString stringWithFormat:@"stand_%d",i+1];
//        // 创建UIImage
//        UIImage *image = [UIImage imageNamed:imageName];
//        // 装入数组
//        [standImages addObject:image];
//    }
//     //设置动画图片
//    self.imageView.animationImages = self.standImages;
//    // 设置播放次数
//    self.imageView.animationRepeatCount = 0;
//    // 设置播放时长
//    self.imageView.animationDuration = 0.5;
//    // 播放
//    [self.imageView startAnimating];
    
    //[self stand];
  [self playZhaoWithImage:self.standImages playcount:0 duration:0.5 isStand:YES];
    
}

// 小招
- (IBAction)smallZhao {
    // 加载所有图片
//    NSMutableArray<UIImage *> *samallImages = [NSMutableArray array];
//    for(int i = 0;i<39;i++){
//        // 获取所有图片的名称
//        NSString *imageName = [NSString stringWithFormat:@"xiaozhao3_%d",i+1];
//        // 创建UIImage
//        UIImage *image = [UIImage imageNamed:imageName];
//        // 装入数组
//        [samallImages addObject:image];
//    }
    // 设置动画图片
//    self.imageView.animationImages = self.samallImages;
//    // 设置播放次数
//    self.imageView.animationRepeatCount = 1;
//    // 设置播放时长
//    self.imageView.animationDuration = 1;
//    // 播放
//    [self.imageView startAnimating];

    // 释放后站立 延迟
    // Selector方法
    // Object 参数
    // afterDelay 时间
   // [self performSelector:@selector(stand) withObject:nil afterDelay:self.imageView.animationDuration];
    [self playZhaoWithImage:self.samallImages playcount:1 duration:1.5 isStand:NO];
    

    
}

// 大招
- (IBAction)bigZhao{
    // 加载所有图片
//    NSMutableArray<UIImage *> *bigimage = [NSMutableArray array];
//    for(int i = 0;i<87;i++){
//        // 获取所有图片的名称
//        NSString *imageName = [NSString stringWithFormat:@"dazhao_%d",i+1];
//        // 创建UIImage
//        UIImage *image = [UIImage imageNamed:imageName];
//        // 装入数组
//        [bigimage addObject:image];
//    }
    // 设置动画图片
//    self.imageView.animationImages = self.bigimage;
//    // 设置播放次数
//    self.imageView.animationRepeatCount = 1;
//    // 设置播放时长
//    self.imageView.animationDuration = 2.0;
//    // 播放
//    [self.imageView startAnimating];

   // [self performSelector:@selector(stand) withObject:nil afterDelay:self.imageView.animationDuration];

   [self playZhaoWithImage:self.bigimage playcount:1 duration:2.0 isStand:NO];
}
// 游戏结束
- (IBAction)gameOver:(id)sender {
    self.standImages = nil;
    self.samallImages = nil;
    self.bigimage = nil;
    self.imageView.animationImages = nil;
    
    
}

-(void)playZhaoWithImage:(NSArray *)images playcount:(NSInteger)playcount duration:(double)duration isStand:(BOOL)isStand{
    self.imageView.animationImages = images;
    // 设置播放次数
    self.imageView.animationRepeatCount = playcount;
    // 设置播放时长
    self.imageView.animationDuration = duration;
    // 播放
    [self.imageView startAnimating];
    
    //站立
    if(!isStand){
        [self performSelector:@selector(stand) withObject:nil afterDelay:self.imageView.animationDuration];

    }
    
}


@end

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/40751.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp 土法 瀑布流 - vue3

效果图 代码 <template><view><!-- 瀑布流展示 --><!-- 标签页 --><view class="rowStart flexNoLineBreaking paddingCol10 innerDomPaddingRow5 tinyShadow marginBottom10"><view @click="tabsCurrent = 0; run_waterfa…

DCDC芯片选型

一、BUCK芯片选型 最初MP2307特别好用&#xff0c;是由美国MPS公司推出

transformer 学习

原理学习: (3条消息) The Illustrated Transformer【译】_于建民的博客-CSDN博客 代码学习: https://github.com/jadore801120/attention-is-all-you-need-pytorch/tree/master/transformer mask学习: (3条消息) NLP 中的Mask全解_mask在自然语言处理代表什么_郝伟博士的…

msys2安装与配置: 在windows上使用linux工具链g++和包管理工具pacman C++开发

文章目录 为什么用这个msys2下载、doc安装&#xff0c;很简单初次运行&#xff0c;做些配置更新软件安装与卸载方法安装必要的软件包设置win环境变量在windows terminal中使用在vscode中使用 为什么用这个msys2 方便windows上的C开发demo&#xff0c;不需要VS了方便C开发安装o…

03.MySQL——索引和事务

索引 索引的概念 索引可以提高数据库的性能。不用加内存&#xff0c;不用改程序&#xff0c;不用调sql&#xff0c;只要执行正确的 create index &#xff0c;查询速度就可能提高成百上千倍。但是查询速度的提高以插入、更新、删除的速度为代价。索引的价值在于提高一个海量数…

【Ubuntu】安装docker-compose

要在Ubuntu上安装Docker Compose&#xff0c;可以按照以下步骤进行操作&#xff1a; 下载 Docker Compose 二进制文件&#xff1a; sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/loc…

【C++ 学习记录】(一)--你好,C++

写在前面 工作需要&#xff0c;重学C&#xff0c;实在是太痛苦了&#xff0c;大二的时候应试就没学会&#xff01;&#xff01; 进入正题 1.编程是怎么回事 C在百科上的解释是一种静态数据类型检查 的、支持多种编程范式&#xff08;面向过程与面向对象等&#xff09;的通用…

想知道搭建知识库有什么重点?看这篇就够了

在目前这个提倡无纸化的时代&#xff0c;搭建一个知识库已经是一种潮流。无论是个人还是企业来说&#xff0c;都是特别重要的一个工具。今天looklook就从搭建知识库的重点这方面来展开&#xff0c;详细地告诉大家该如何成功搭建一个完善的知识库。 搭建知识库的重点 1.建立素材…

ubuntu版本Linux操作系统上安装键盘中文输入法

要在ubuntu版本Linux操作系统上安装键盘中文输入法 可以按照以下步骤进行操作&#xff1a; 1、Linux终端输入&#xff1a;sudo apt-get install ibus-pinyin 这将安装一个常用的中文输入法 “ibus-pinyin”。 2、重新启动系统&#xff1a;为了使输入法生效&#xff0c;需要…

【C语言+sqlite3 API接口】实现水果超市

实验内容&#xff1a; 假如我家开了个水果超市&#xff0c;有以下水果&#xff0c;想实现自动化管理&#xff0c;扫描二维码就能知道当前的水果状态&#xff0c;进货几天了&#xff0c; 好久需要再次进货&#xff0c;那些水果畅销&#xff0c;那些水果不畅销&#xff0c;那些水…

第一次实操Python+robotframework接口自动化测试

目前我们需要考虑的是如何实现关键字驱动实现接口自动化输出&#xff0c;通过关键字的封装实现一定意义上的脚本与用例的脱离&#xff01; robot framework 的安装不过多说明&#xff0c;网上资料比较太多~ 实例&#xff1a;&#xff01;&#xff01;&#xff01;&#xff01…

开源的短视频生成和编辑工具 Open Chat Video Editor

GitHub - SCUTlihaoyu/open-chat-video-editor: Open source short video automatic generation tool

KUKA机械臂的导纳控制

KUKA机械臂的导纳控制 在近期的实验中&#xff0c;需要根据传感器的给出的实时位置信息进行导纳控制&#xff0c;并实时改变导纳控制的参数。由于KUKA自带的实时导纳控制模型无法实时修改参数&#xff0c;因此尝试了自己实现导纳控制。网上这方面的资料比较少&#xff0c;整理…

Vue自定义指令

需求1&#xff1a;定义一个v-big指令&#xff0c;和v-text功能类似&#xff0c;但会把绑定的数值放大10倍。 需求2&#xff1a;定义一个v-fbind指令&#xff0c;和v-bind功能类似&#xff0c;但可以让其所绑定的input元素默认获取焦点。 自定义指令函数式v-big&#xff1a; &l…

Flutter 小技巧之滑动控件即将“抛弃” shrinkWrap 属性

相信对于 Flutter 开发的大家来说&#xff0c; ListView 的 shrinkWrap 配置都不会陌生&#xff0c;如下图所示&#xff0c;每当遇到类似的 unbounded error 的时候&#xff0c;总会有第一反应就是给 ListView 加上 shrinkWrap: true 就可以解决问题&#xff0c;那为什么现在会…

2023云曦期末复现

目录 WEB sign SSTI serialize WEB sign 有10000个 进行bp爆破 能发现 410 和 414长度 还有 420 410 414存在16进制的字符 拼凑出来为 \x66\x6c\x61\x67\x7b\x61\x63\x63\x39\x39\x66\x39\x30\x34\x66\x30\x65\x61\x66\x61\x34\x31\x63\x30\x36\x34\x33\x36\x38\x31\x3…

手机外壳缺陷视觉检测软硬件方案

单独使用一种光源效果图 同轴光会出现亮度不够的情况&#xff1b;回形面光因为光源中间的圆孔会使图像有阴影&#xff0c;造成图像效果不均衡&#xff0c;所以不采用单独光源打光 使用同轴回形面光源效果图 回形光源照亮产品要寻找的边缘&#xff0c;同轴光源起到补光的作用&a…

【100天精通python】Day5:python 基本语句,流程控制语句

目录 1. 条件语句 1.1 if语句 1.2 if-else语句 1.3 if-elif-else语句 2 循环语句 2.1 for循环 2.2 while循环&#xff1a; 3 跳转语句 3.1 break语句 3.2 continue语句 3.3 pass语句 4 异常处理语句&#xff08;try-except语句&#xff09; 5 语句嵌套 5.1 条…

Spring框架概述及核心设计思想

文章目录 一. Spring框架概述1. 什么是Spring框架2. 为什么要学习框架&#xff1f;3. Spring框架学习的难点 二. Spring核心设计思想1. 容器是什么&#xff1f;2. IoC是什么&#xff1f;3. Spring是IoC容器4. DI&#xff08;依赖注入&#xff09;5. DL&#xff08;依赖查找&…

2023-7-13-第十八式观察者模式

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xf…