oc基本控件2

这篇具有很好参考价值的文章主要介绍了oc基本控件2。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

oc基本控件2,oc,ios,objective-c,开发语言

//
//  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

 文章来源地址https://www.toymoban.com/news/detail-588783.html

到了这里,关于oc基本控件2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • iOS问题记录 - type argument ‘nw_proxy_config_t‘ is neither an Objective-C object nor a block type

    升级Xcode 15后,意料之中,项目又遇到了问题。 Xcode: 15.0 CocoaPods: 1.12.1 flutter_inappwebview: 6.0.0-beta.24+1 Flutter项目在Xcode 15上编译时报错: 从报错信息看,是因为 nw_proxy_config_t 的类型不对导致的,错误发生在 flutter_inappwebview 库用到的 WebKit.framework 中,初步猜测可能是有什么新的

    2024年02月08日
    浏览(45)
  • Objective-C网络请求开发的高效实现方法与技巧

    在移动应用开发中,网络请求是一项至关重要的技术。Objective-C作为iOS平台的主要开发语言之一,拥有丰富的网络请求开发工具和技术。本文将介绍如何利用Objective-C语言实现高效的网络请求,以及一些实用的技巧和方法。 Objective-C是一种基于C语言的面向对象编程语言,它具

    2024年04月14日
    浏览(36)
  • 【iOS开发】理解OC的类,父类,元类的关系

    在OC中,有对象objc,有类Class,有父类SuperClass,其实还有一种元类MetaClass。在接下来的RunLoop,消息转发机制的学习之前需要知道OC类和对象的底层,所以理解类, 父类,元类的关系是基础 在 Objective-C 中,类是对象的模板或蓝图,而对象则是类的实例。每个对象都有一个类作

    2024年02月03日
    浏览(46)
  • 【Effective Objective - C】—— 熟悉Objective-C

    Objective-C通过一套全新语法,在C语言基础上添加了面向对象特性。Objective-C的语法中频繁使用方括号,而且不吝于写出极长的方法名,这通常令许多人觉得此语言较为冗长。其实这样写出来的代码十分易读,只是C++或Java程序员不太能适应。 Objective-C语言学起来很快,但有很

    2024年01月16日
    浏览(47)
  • objective-c 基础学习

    目录 第一节:OC 介绍 ​​第二节:Fundation 框架 ​第三节:NSLog 相对于print 的增强 ​第四节:NSString ​第五节:oc新增数据类型 第六节: 类和对象 ​类的方法的声明与实现 ​第七节:类和对象的存储 第八节:nil 与 NULL 第九节:分组导航标记#pragma mark ​第十节:方法与函

    2024年02月07日
    浏览(42)
  • 第一章 熟悉Objective-C

    Objective—C语言是由Smalltalk演化而来,后者是消息型语言的鼻祖,所以该语言使用的“消息结构”而非“函数调用”。 1. 消息和函数调用之间的区别 关键区别在于: 使用消息结构的语言,其运行所应执行的代码由运行环境来决定;而使用函数调用的语言,则由编译器决定。

    2024年01月18日
    浏览(40)
  • Effective Objective-C 学习(四)

    在执行后台任务时,GCD 并不一定是最佳方式。还有一种技术叫做 NSOperationQueue,它虽然与 GCD 不同,但是却与之相关,开发者可以把操作以 NSOperation 子类的形式放在队列中,而这些操作也能够并发执行。 GCD是纯C的API,而NSOperationQueue是Objective-C的对象。这意味着使用GCD时,任

    2024年02月19日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包