zoukankan      html  css  js  c++  java
  • UI:tomcat(说话小程序)、相框动画、UISgmentcontrol、UISwitch

    UISegmentedControl 分段控件

        //1. UISegmentedControl 分段控件 (就是一个一个的按钮)

        //分段显示的标题是以一个数组存储的

        NSArray * titles = @[@"护卫队",@"三军仪仗队",@"步兵队"];

        UISegmentedControl * segment = [[UISegmentedControl alloc]initWithItems:titles];

        segment.frame = CGRectMake(20, 40, 335, 40);//指定所在视图位置

        segment.tintColor = [UIColor redColor];//设置选中的颜色

        //设置默认的选中项目

        segment.selectedSegmentIndex = 1;

     //添加点击事件 (点击哪一个就触发哪一个的下标值对应的事件)

        [segment addTarget:self action:@selector(handleSegment:) forControlEvents:UIControlEventValueChanged];

        //设置某项的 title

        [segment setTitle:@"女兵方队" forSegmentAtIndex:2];

        //设置某项的特定宽度 (一旦设定,只改变当前的,其他的仍旧等分)

        [segment setWidth:100 forSegmentAtIndex:2];

        //设置文字大小 颜色

        NSDictionary * dic = @{NSFontAttributeName:[UIFont systemFontOfSize:15],NSForegroundColorAttributeName:[UIColor blueColor]};

    //    segment setTitleTextAttributes:<#(NSDictionary *)#> forState:<#(UIControlState)#>

        [segment setTitleTextAttributes:dic forState:UIControlStateNormal];

        [self.view addSubview:segment];

        [segment release];

        segment.selectedSegmentIndex 选中的下标

    对应代码

     NSArray * titles = @[@"护卫队",@"三军仪仗队",@"步兵队",@"炮兵分队"];
        UISegmentedControl * segment = [[UISegmentedControl alloc]initWithItems:titles];
        segment.frame = CGRectMake(20, 40, 335, 40);//指定所在视图位置
        //添加点击事件 (点击哪一个就触发哪一个的下标值对应的事件)
        [segment addTarget:self action:@selector(handleSegment:) forControlEvents:UIControlEventValueChanged];
        [self.view addSubview:segment];
        [segment release];
    
        
    }
    //点击事件
    -(void)handleSegment:(UISegmentedControl *)segment{
        switch (segment.selectedSegmentIndex) {
            case 0:
            {
                NSLog(@"开始阅兵-护卫队");
            }
                break;
            case 1:
            {
                NSLog(@"开始阅兵-三军仪仗队");
            }
                break;
            case 2:
            {
                NSLog(@"开始阅兵-步兵队");
            }
                break;
            case 3:
            {
                NSLog(@"开始阅兵-炮兵分队");
            }
                break;
            default:
                break;
        }
    View Code  UIsegmentedContro  demo

     //2.滑块控件 UISlider (用于音频、视频的快进,倒退)

     //2.滑块控件 UISlider (用于音频、视频的快进,倒退)

        //是一个滑竿 存放着一系列连续的值

        UISlider * slider = [[UISlider alloc]initWithFrame:CGRectMake(30, 100, 300, 30)];

        //设置滑竿的最小值,最大值

        slider.minimumValue = 0.0;

        slider.maximumValue = 1.0;

        //添加滑动时的触发事件

        [slider addTarget:self action:@selector(handleSlider:) forControlEvents:UIControlEventValueChanged];

        [self.view addSubview:slider];

        [slider release];

        //设置滑块的显示图片(不用系统提供的小白点)

        [slider setThumbImage:[UIImage imageNamed:@"1.png"] forState:UIControlStateNormal];

        //在根视图上放一个 View

        UIView * View = [[UIView alloc]initWithFrame:CGRectMake(80, 180, 100, 100)];

        View.tag = 101;

        //设置划过区域的滑竿颜色

        slider.minimumTrackTintColor = [UIColor redColor];

        //设置未划过区域的滑竿的颜色

        slider.maximumTrackTintColor = [UIColor blueColor];

        //滑块的默认位置

        slider.value = 0.3;

    //    View.hidden = YES;

        View.backgroundColor = [UIColor greenColor];

        [self.view addSubview:View];

        [View release];

     上面的例子对应的实现:

    //滑动时的触发事件
    -(void)handleSlider:(UISlider *)slider{
        NSLog(@"%f",slider.value);
        UIView *aView = [[UIView alloc]init];
        aView = [self.view viewWithTag:101];
    //    self.view.hidden = NO;
    //    self.view.alpha = slider.value;
        aView.alpha = slider.value;
        //获取 View 的背景颜色的 RGB 值
        CGFloat red = 0.0;
        CGFloat green = 0.0;
        CGFloat blue = 0.0;
        [aView.backgroundColor getRed:&red
                               green:&green
                                blue:&blue
                                alpha:nil];
        NSLog(@"打印 RGB 值; red %f, green %f, blue %f",red,green,blue);
    }
    View Code 对应的实现

    在相框类 UIImageView 对象里添加图片的两种方式:

    (1)给定图片的名字

    (2)通过路径找到文件,例如做动态图的时候

    UIimage * image = [UIimage imageNamed:@"图片名字"];

    NSString * filePath = [[NSBundle mainBundle] pathForResource:"文件名"]//获取文件路径

    NSString * image = [UIimage imageWithContentsOfFile:文件路径];//寻找相应的文件

     图片按照缩放比呈现在相框里

     CGFloat width = image.size.width;//获取当前图片的尺寸

     CGFloat height = image.size.height;

    UIImageView * imageView = [[UIImageView alloc]initWithImage:image];//把相片载入相框

    imageView.frame = CGRectMake = (x,y,w*width,h*height);//同比适应图片大小(等比例缩放)

     [self.view addSubview:imageView];

    在相框框中加载动态图片

    animationImages 是一个数组(存放动态图片的)

    设置相框  UIImageView * imageView = [[UIImageView alloc]initWithFrame:CGRectMake(50, 100, 275, 200)];

    NSMutableArray * imageArr = [[NSMutableArray alloc]initWithCapacity:0];用于获取动态图片的数组

     //获取图片的路径(一般图片都是有规律的名字,如 a1...a10 如果不安规律命名 就要一张一张的获取)

        for (int i = 0; i< 6; i++) {

            NSString * imageName = [NSString stringWithFormat:@"flag%d",i+1];

    //        NSString * imageName =

            NSString * filePath = [[NSBundle mainBundle]pathForResource:imageName ofType:@"tiff"];

            UIImage * image = [UIImage imageWithContentsOfFile:filePath];

            //把图片存放到数组中

            [imageArr addObject:image];

        }

     imageView.animationImages = imageArr;

    设置播放时间0.3秒  imageView.animationDuration = 0.3,

    播放次数  imageView.animationRepeatCount = 0;//给 0 的话是无限的播放,我们的默认是无限

        //开启播放

        [imageView startAnimating];

        [self.view addSubview:imageView];

    #import "AppDelegate.h"
    #import "WindowRootViewController.h"
    
    @interface AppDelegate ()
    
    @end
    
    @implementation AppDelegate
    
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        // Override point for customization after application launch.
        self.window.backgroundColor = [UIColor whiteColor];
        [self.window makeKeyAndVisible];
        
        WindowRootViewController * RootVC = [[WindowRootViewController alloc]init];
        self.window.rootViewController = RootVC;
        [RootVC release];
        
        
        return YES;
    }
    View Code AppDelegate.m 文件
    //
    //  WindowRootViewController.m
    
    #import "WindowRootViewController.h"
    
    @interface WindowRootViewController ()
    
    @end
    
    @implementation WindowRootViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        //1.分段控件 UISegemnetedControl 控件
        //
        NSArray * titles = @[@"护卫队",@"三军仪仗队",@"步兵队",@"炮兵分队"];
        UISegmentedControl * segment = [[UISegmentedControl alloc]initWithItems:titles];
        segment.frame = CGRectMake(20, 40, 335, 40);//指定所在视图位置
        //添加点击事件 (点击哪一个就触发哪一个的下标值对应的事件)
        [segment addTarget:self action:@selector(handleSegment:) forControlEvents:UIControlEventValueChanged];
        //设置选中的颜色
        segment.tintColor = [UIColor redColor];
        //设置默认的选中项目
        segment.selectedSegmentIndex = 1;
        //设置某项的 title
        [segment setTitle:@"女兵方队" forSegmentAtIndex:2];
        //设置某项的特定宽度,(其他几项等分)
        [segment setWidth:100 forSegmentAtIndex:2];
        //设置文字大小 颜色
        NSDictionary * dic = @{NSFontAttributeName:[UIFont systemFontOfSize:15],NSForegroundColorAttributeName:[UIColor blueColor]};
    //    segment setTitleTextAttributes:<#(NSDictionary *)#> forState:<#(UIControlState)#>
        [segment setTitleTextAttributes:dic forState:UIControlStateNormal];
        [self.view addSubview:segment];
        [segment release];
        
    /*
        //2.滑块控件 UISlider (用于音频、视频的快进,倒退)
        //是一个滑竿 存放着一系列连续的值
        UISlider * slider = [[UISlider alloc]initWithFrame:CGRectMake(30, 100, 300, 30)];
        //设置滑竿的最小值,最大值
        slider.minimumValue = 0.0;
        slider.maximumValue = 1.0;
        //添加滑动时的触发事件
        [slider addTarget:self action:@selector(handleSlider:) forControlEvents:UIControlEventValueChanged];
        [self.view addSubview:slider];
        [slider release];
        //设置滑块的显示图片(不用系统提供的小白点)
        [slider setThumbImage:[UIImage imageNamed:@"1"] forState:UIControlStateNormal];
        //在根视图上放一个 View
        UIView * View = [[UIView alloc]initWithFrame:CGRectMake(80, 180, 100, 100)];
        View.tag = 101;
        //设置划过区域的滑竿颜色
        slider.minimumTrackTintColor = [UIColor redColor];
        //设置未划过区域的滑竿的颜色
        slider.maximumTrackTintColor = [UIColor blueColor];
        //滑块的默认位置
        slider.value = 0.3;
    //    View.hidden = YES;
        View.backgroundColor = [UIColor greenColor];
        [self.view addSubview:View];
        [View release];
        
    //    UISlider * slider2 = [[UISlider alloc]initWithFrame:CGRectMake(50, 50, 320, 20)];
    //    slider2.ma
        
    */
        
        
        
        //上午第二节 (两种方式的区别)
        /*
        //图片类 UIImageView <加载静态图>
     //第一种方式,给定图片的名字
    //    UIImage * image = [UIImage imageNamed:@"12.jpg"];//用了便利构造器,不用释放
     //第二种 按照给定图片(所在应用包里)的路径
        //NSBundle 是应用程序的包(如果做应用程序 图片资源都会打包放到里面) resource 是资源的名字 type 就是资源的类型(就是后缀名)
        //NSBundle 可以理解为一个存放程序使用到的 音频 视频 的文件夹
        NSString * filePath = [[NSBundle mainBundle]pathForResource:@"12" ofType:@"jpg"];
        UIImage * image = [UIImage imageWithContentsOfFile:filePath];//去寻找应用文件
        //压缩图片
        //获取 image 的大小
        CGFloat width = image.size.width;
        CGFloat height = image.size.height;
        //UIImageView 相框
        //根据图片大小设置相框
        UIImageView * imageView = [[UIImageView alloc]initWithImage:image];
        imageView.frame = CGRectMake(80, 110, 200, 200*height/width);//同比适应图片大小(等比例缩放)
        [self.view addSubview:imageView];
        [imageView  release];
         */
        
        //加载动态图片 //获取图片
        //加载动态图片
        UIImageView * imageView = [[UIImageView alloc]initWithFrame:CGRectMake(50, 100, 275, 200)];
        //设置  imageView 播放的一组动态图片
    //    animationImages 是一个数组
        //获取图片
        NSMutableArray * imageArr = [[NSMutableArray alloc]initWithCapacity:0];
        //获取图片的路径(一般图片都是有规律的名字,如 a1...a10 如果不安规律命名 就要一张一张的获取)
        for (int i = 0; i< 6; i++) {
            NSString * imageName = [NSString stringWithFormat:@"flag%d",i+1];
    //        NSString * imageName =
            NSString * filePath = [[NSBundle mainBundle]pathForResource:imageName ofType:@"tiff"];
            UIImage * image = [UIImage imageWithContentsOfFile:filePath];
            //把图片存放到数组中
            [imageArr addObject:image];
        }
        imageView.animationImages = imageArr;
        //设置播放时间
        imageView.animationDuration = 0.3;
        imageView.animationRepeatCount = 0;//给 0 的话是无限的播放,我们的默认是无限
        //开启播放
        [imageView startAnimating];
        
        [self.view addSubview:imageView];
    }
    //点击事件
    -(void)handleSegment:(UISegmentedControl *)segment{
        switch (segment.selectedSegmentIndex) {
            case 0:
            {
                NSLog(@"开始阅兵-护卫队");
            }
                break;
            case 1:
            {
                NSLog(@"开始阅兵-三军仪仗队");
            }
                break;
            case 2:
            {
                NSLog(@"开始阅兵-步兵队");
            }
                break;
            case 3:
            {
                NSLog(@"开始阅兵-炮兵分队");
            }
                break;
            default:
                break;
        }
    
    }
    //滑动时的触发事件
    -(void)handleSlider:(UISlider *)slider{
        NSLog(@"%f",slider.value);
        UIView *aView = [[UIView alloc]init];
        aView = [self.view viewWithTag:101];
    //    self.view.hidden = NO;
    //    self.view.alpha = slider.value;
        aView.alpha = slider.value;
        //获取 View 的背景颜色的 RGB 值
        CGFloat red = 0.0;
        CGFloat green = 0.0;
        CGFloat blue = 0.0;
        [aView.backgroundColor getRed:&red
                               green:&green
                                blue:&blue
                                alpha:nil];
        NSLog(@"打印 RGB 值; red %f, green %f, blue %f",red,green,blue);
    }
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    /*
    #pragma mark - Navigation
    
    // In a storyboard-based application, you will often want to do a little preparation before navigation
    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
        // Get the new view controller using [segue destinationViewController].
        // Pass the selected object to the new view controller.
    }
    */
    
    @end
    View Code WindowRootViewController.m 文件

    小总结:

    获取某类型的文件 [[NSBundle mainBundle]pathForResource:文件名字 ofType:文件类型或者文件后缀名]

    //        NSString * path = [[NSBundle mainBundle]pathForResource:<#(NSString *)#> ofType:<#(NSString *)#>];

     相框的等比例加载图片

    相框 UIImageView 类的使用  

    动态图片的加载 (动态图的开始播放 satrAnimating      结束播放 stopAnimating  播放时间 animationDuration      播放次数 animationCount  )    

        aView = [self.view viewWithTag:101];根据标签得到视图,不能写成了为临时视图标签赋值了


    UIStepper

    UISwitch 控件 (开关控件)

    继承关系

    UISwitch :UIControl : UIView : UIResponder : NSObject

    如果想让一个视图自带一个点击事件的话,让视图继承UIControl即可。

    UISwitch 还有 UIScreenEdgePanGestureRecongnizer 都是IOS7之后才有的新的特性,对于 UISwitch 我们可是使用 UIButton 去实现

    UISwitch * sw = [UISwitch alloc]initWitchFrameMake:CGRectMake(x,y,w,h)];

    开关属性 sw.on 默认为关闭状态

    sw.on = YES; 

    点击时候的颜色 tintColor

    sw.tintColor = [UIColor redColor];

    开启时候的颜色 onTintColor  sw.onTintColor = 颜色设置

    thumbColor 属性是按钮的那个点的颜色  sw.thumbColor = [UIColor redColor];

    设置点击方法事件  sw addTarget:id action:(SEL) forControlEVents:(对应状态)

    设置开启状态下的图片 sw.onImage =[UIImage imageNamed: ] 图片设置

    代码:

    //
    //  WindowRootViewController.m
    
    #import "WindowRootViewController.h"
    
    @interface WindowRootViewController ()
    @property(nonatomic,retain)UIImageView *imageView;
    @end
    
    @implementation WindowRootViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        //1.分段控件 UISegemnetedControl 控件
        //
        NSArray * titles = @[@"护卫队",@"三军仪仗队",@"步兵队",@"炮兵分队"];
        UISegmentedControl * segment = [[UISegmentedControl alloc]initWithItems:titles];
        segment.frame = CGRectMake(20, 40, 335, 40);//指定所在视图位置
        //添加点击事件 (点击哪一个就触发哪一个的下标值对应的事件)
        [segment addTarget:self action:@selector(handleSegment:) forControlEvents:UIControlEventValueChanged];
        //设置选中的颜色
        segment.tintColor = [UIColor redColor];
        //设置默认的选中项目
        segment.selectedSegmentIndex = 1;
        //设置某项的 title
        [segment setTitle:@"女兵方队" forSegmentAtIndex:2];
        //设置某项的特定宽度,(其他几项等分)
        [segment setWidth:100 forSegmentAtIndex:2];
        //设置文字大小 颜色
        NSDictionary * dic = @{NSFontAttributeName:[UIFont systemFontOfSize:15],NSForegroundColorAttributeName:[UIColor blueColor]};
    //    segment setTitleTextAttributes:<#(NSDictionary *)#> forState:<#(UIControlState)#>
        [segment setTitleTextAttributes:dic forState:UIControlStateNormal];
        [self.view addSubview:segment];
        [segment release];
        
    /*
        //2.滑块控件 UISlider (用于音频、视频的快进,倒退)
        //是一个滑竿 存放着一系列连续的值
        UISlider * slider = [[UISlider alloc]initWithFrame:CGRectMake(30, 100, 300, 30)];
        //设置滑竿的最小值,最大值
        slider.minimumValue = 0.0;
        slider.maximumValue = 1.0;
        //添加滑动时的触发事件
        [slider addTarget:self action:@selector(handleSlider:) forControlEvents:UIControlEventValueChanged];
        [self.view addSubview:slider];
        [slider release];
        //设置滑块的显示图片(不用系统提供的小白点)
        [slider setThumbImage:[UIImage imageNamed:@"1"] forState:UIControlStateNormal];
        //在根视图上放一个 View
        UIView * View = [[UIView alloc]initWithFrame:CGRectMake(80, 180, 100, 100)];
        View.tag = 101;
        //设置划过区域的滑竿颜色
        slider.minimumTrackTintColor = [UIColor redColor];
        //设置未划过区域的滑竿的颜色
        slider.maximumTrackTintColor = [UIColor blueColor];
        //滑块的默认位置
        slider.value = 0.3;
    //    View.hidden = YES;
        View.backgroundColor = [UIColor greenColor];
        [self.view addSubview:View];
        [View release];
        
    //    UISlider * slider2 = [[UISlider alloc]initWithFrame:CGRectMake(50, 50, 320, 20)];
    //    slider2.ma
        
    */
        
        
        
        //上午第二节 (两种方式的区别)
        /*
        //图片类 UIImageView <加载静态图>
     //第一种方式,给定图片的名字
    //    UIImage * image = [UIImage imageNamed:@"12.jpg"];//用了便利构造器,不用释放
     //第二种 按照给定图片(所在应用包里)的路径
        //NSBundle 是应用程序的包(如果做应用程序 图片资源都会打包放到里面) resource 是资源的名字 type 就是资源的类型(就是后缀名)
        //NSBundle 可以理解为一个存放程序使用到的 音频 视频 的文件夹
        NSString * filePath = [[NSBundle mainBundle]pathForResource:@"12" ofType:@"jpg"];
        UIImage * image = [UIImage imageWithContentsOfFile:filePath];//去寻找应用文件
        //压缩图片
        //获取 image 的大小
        CGFloat width = image.size.width;
        CGFloat height = image.size.height;
        //UIImageView 相框
        //根据图片大小设置相框
        UIImageView * imageView = [[UIImageView alloc]initWithImage:image];
        imageView.frame = CGRectMake(80, 110, 200, 200*height/width);//同比适应图片大小(等比例缩放)
        [self.view addSubview:imageView];
        [imageView  release];
         */
        /*   */
        //加载动态图片 //获取图片
        //加载动态图片
        UIImageView * imageView = [[UIImageView alloc]initWithFrame:CGRectMake(50, 100, 275, 200)];
        imageView.tag = 101;
        //设置  imageView 播放的一组动态图片
    //    animationImages 是一个数组
        //获取图片
        NSMutableArray * imageArr = [[NSMutableArray alloc]initWithCapacity:0];
        //获取图片的路径(一般图片都是有规律的名字,如 a1...a10 如果不安规律命名 就要一张一张的获取)
        for (int i = 0; i< 6; i++) {
            NSString * imageName = [NSString stringWithFormat:@"flag%d",i+1];
    //        NSString * imageName =
            NSString * filePath = [[NSBundle mainBundle]pathForResource:imageName ofType:@"tiff"];
            UIImage * image = [UIImage imageWithContentsOfFile:filePath];
            //把图片存放到数组中
            [imageArr addObject:image];
        }
        imageView.animationImages = imageArr;
        //设置播放时间
        imageView.animationDuration = 0.3;
        imageView.animationRepeatCount = 0;//给 0 的话是无限的播放,我们的默认是无限
        //开启播放
        _imageView =imageView;
    //    [imageView startAnimating];
        
        [self.view addSubview:imageView];
      
        
        //下午所学 UIStepper(自己查阅学习)
        //UISwitch 开关控件 控制开关两种状态(比如系统里面打开wifi 的开关)在 IOS7 下是没有作用的 如果在IOS7 以下我们可以用 UIButton 去实现
        UISwitch * sw = [[UISwitch alloc]initWithFrame:CGRectMake(100, 400, 40, 30)];
        sw.on = YES;//设置开关状态,默认是关闭状态
        //改变颜色 (点击按钮时候的渲染颜色)
        sw.tintColor = [UIColor greenColor];
        //设置开启状态的渲染颜色
        sw.onTintColor = [UIColor grayColor];
        //设置 thumb 颜色
        sw.thumbTintColor = [UIColor blackColor];
        //设置点击方法  (凡是继承与 UIControl 的类 都可以有以下的添加点击事件的方法)
        [sw addTarget:self action:@selector(handleSwitch:) forControlEvents:UIControlEventValueChanged];
        [self.view addSubview:sw];
        [sw release];
        //设置不同(开启和关闭状态下)的图片
        sw.onImage = [UIImage imageNamed:@"1"];
    
    
        
        
        
        
    }
    //点击事件
    -(void)handleSegment:(UISegmentedControl *)segment{
        switch (segment.selectedSegmentIndex) {
            case 0:
            {
                NSLog(@"开始阅兵-护卫队");
            }
                break;
            case 1:
            {
                NSLog(@"开始阅兵-三军仪仗队");
            }
                break;
            case 2:
            {
                NSLog(@"开始阅兵-步兵队");
            }
                break;
            case 3:
            {
                NSLog(@"开始阅兵-炮兵分队");
            }
                break;
            default:
                break;
        }
    
    }
    //滑动时的触发事件
    -(void)handleSlider:(UISlider *)slider{
        NSLog(@"%f",slider.value);
        UIView *aView = [[UIView alloc]init];
        aView = [self.view viewWithTag:101];
    //    self.view.hidden = NO;
    //    self.view.alpha = slider.value;
        aView.alpha = slider.value;
        //获取 View 的背景颜色的 RGB 值
        CGFloat red = 0.0;
        CGFloat green = 0.0;
        CGFloat blue = 0.0;
        [aView.backgroundColor getRed:&red
                               green:&green
                                blue:&blue
                                alpha:nil];
        NSLog(@"打印 RGB 值; red %f, green %f, blue %f",red,green,blue);
    }
    
    //开关控件点击事件
    -(void)handleSwitch:(UISwitch *)sw{
    //    switch ((int)sw.on) {
    //        case YES:
    //        {
    //            NSLog(@"开启");
    //        }
    //            break;
    //        case NO:
    //        {
    //            NSLog(@"关闭");
    //        }
    //            break;
    //        default:
    //            break;
    //    }
        UIImageView * view = (UIImageView *)[self.view viewWithTag:101];
        if (sw.on) {
             NSLog(@"开启");
            [view startAnimating];//利用 tag 值
    //        [_imageView startAnimating];//利用属性控制
        }
        if (!sw.on) {
            NSLog(@"关闭");
            [view stopAnimating];
    //        [_imageView stopAnimating];
        }
    }
    
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    /*
    #pragma mark - Navigation
    
    // In a storyboard-based application, you will often want to do a little preparation before navigation
    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
        // Get the new view controller using [segue destinationViewController].
        // Pass the selected object to the new view controller.
    }
    */
    
    @end
    View Code 代码

    tomCat 实现代码:

    #import <UIKit/UIKit.h>
    
    @interface AppDelegate : UIResponder <UIApplicationDelegate>
    
    @property (strong, nonatomic) UIWindow *window;
    
    
    @end
    View Code AppDelegate。h
    #import "AppDelegate.h"
    #import "RootViewController.h"
    
    @interface AppDelegate ()
    
    @end
    
    @implementation AppDelegate
    
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        // Override point for customization after application launch.
        self.window.backgroundColor = [UIColor whiteColor];
        [self.window makeKeyAndVisible];
        RootViewController * RootVC = [[RootViewController alloc]init];
        self.window.rootViewController  = RootVC;
        
        
        return YES;
    }
    View Code AppDelegate.m
    #import <UIKit/UIKit.h>
    #import <AVFoundation/AVFoundation.h>
    @interface RootViewController : UIViewController
    
    @end
    View Code RootViewController.h
    //
    //  RootViewController.m
    
    #import "RootViewController.h"
    
    
    @interface RootViewController ()
    @property(nonatomic,retain)UIImageView * imageView;
    @property(nonatomic,retain)UISegmentedControl * segment;
    @property(nonatomic,retain)AVAudioPlayer * player;
    
    @end
    
    @implementation RootViewController
    
    -(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            //
        }
        return self;
    }
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        [self setUpView];
    }
    
    //布局页面
    -(void)setUpView{
        UIImage * image = [UIImage imageNamed:@"angry_00.jpg"];
        self.imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height-50)];
    //    CGFloat width = image.size.width;
    //    CGFloat height = image.size.height;
    //    [_imageView initWithImage:image];
        [_imageView setImage:image];
        [self.view addSubview:self.imageView];
        [_imageView release];
        NSArray * title = @[@"生气",@"喝奶",@"放屁",@"踩脚",@"吃饭"];
        self.segment = [[UISegmentedControl alloc]initWithItems:title];
        _segment.frame = CGRectMake(0, self.view.frame.size.height-50, self.view.frame.size.width, 50);
        [_segment addTarget:self action:@selector(handleChange:) forControlEvents:UIControlEventValueChanged];
        [self.view addSubview:_segment];
        [_segment release];
    }
    
    //UISegmentedControl 控件点击触发事件
    -(void)handleChange:(UISegmentedControl *)segment{
        switch (segment.selectedSegmentIndex) {
            case 0://进行生气
            {
                [self catActionWithImageName:@"angry" imageCount:25 imageIndex:0 soundName:@"angry" repeatCount:4 duration:4];
            }
                break;
            case 1://进行喝牛奶
            {
                [self catActionWithImageName:@"drink" imageCount:80 imageIndex:0 soundName:@"p_drink_milk" repeatCount:4 duration:2];
            }
                break;
            case 2://进行放屁
            {
                [self catActionWithImageName:@"fart" imageCount:27 imageIndex:0 soundName:@"fart001_11025" repeatCount:4 duration:3];
            }
                break;
            case 3://进行踩左脚
            {
                [self catActionWithImageName:@"footLeft" imageCount:29 imageIndex:0 soundName:@"p_foot3" repeatCount:4 duration:3];
            }
                break;
            case 4://
            {
                [self catActionWithImageName:@"eat" imageCount:39 imageIndex:0 soundName:@"p_eat" repeatCount:4 duration:3];
            }
                break;
            default:
                break;
        }
    }
    
    //进行相应操作的方法
    //NSTimeInterval 以秒为单位的时间属性
    //@"%@_%02d" 保证后面的数字是数字个数不足两位的时候在前面补0
    -(void)catActionWithImageName:(NSString *)imageName
                       imageCount:(NSInteger)count
                       imageIndex:(int)index
                        soundName:(NSString *)soundName
                      repeatCount:(NSInteger)repeatCount
                         duration:(NSTimeInterval)duration{
        //播放动画效果
        NSMutableArray * arr = [NSMutableArray arrayWithCapacity:count];
        for (int i = index; i < count; i++) {
            NSString * path = [[NSBundle mainBundle]pathForResource:[NSString stringWithFormat:@"%@_%02d",imageName,i] ofType:@"jpg"];//获取图片路径
            UIImage * image = [UIImage imageWithContentsOfFile:path];//获取图片
            [arr addObject:image];
        }
        self.imageView.animationImages = arr;
        self.imageView.animationDuration = duration;
        self.imageView.animationRepeatCount = repeatCount;
        [self.imageView startAnimating];
        //播放音效
        NSString * filePath = [[NSBundle mainBundle]pathForResource:soundName ofType:@"m4a"];
        //创建一个音频播放器对象
        //initWithContentsOfURL:[NSURL URLWithString:filePath] 如果是网上的音频,需要改为网址
        self.player = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL URLWithString:filePath] error:nil];
        for (int j = 0; j < repeatCount; j++) {
            //播放
            [_player play];
        }
         [_player release];
    }
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    /*
    #pragma mark - Navigation
    
    // In a storyboard-based application, you will often want to do a little preparation before navigation
    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
        // Get the new view controller using [segue destinationViewController].
        // Pass the selected object to the new view controller.
    }
    */
    
    @end
    View Code RootViewController.m

    //随机出现一张图片

    UIImageView * imageView1 = [[UIImageView alloc]initWithImage:imageArr[arc4random()%(10-0+1)+0]];

  • 相关阅读:
    B
    B
    G
    F
    E
    A
    C
    2017icpc 乌鲁木齐网络赛
    bzoj 2038 小Z的袜子(hose)(莫队算法)
    矩阵快速幂刷题系列
  • 原文地址:https://www.cnblogs.com/benpaobadaniu/p/4779997.html
Copyright © 2011-2022 走看看