UIControl

本文介绍了一个iOS应用中实现动态图片展示的过程,并详细解释了如何使用UIKit框架中的UIImageView来播放图片序列作为动画。此外,还展示了如何通过UISlider调整动画速度、UISwitch控制动画播放状态以及UISegmentedControl改变视图背景颜色等交互效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#import "MainViewController.h"


@interface MainViewController ()


@property (nonatomic,retain) UIImageView *imageView;


@end


@implementation MainViewController


- (void)dealloc

{


    [_imageView release];

    [super dealloc];

}


- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view.

    

    self.imageView = [[UIImageView alloc] initWithFrame:CGRectMake(20, 120, 335, 500)];

    _imageView.backgroundColor = [UIColor grayColor];

    [self.view addSubview:_imageView];

    [_imageView release];

    

    self.imageView.image = [UIImage imageNamed:@"Zombie0.tiff"];

    // 创建一个空的可变数组

    NSMutableArray *arr = [NSMutableArray array];

    

    for (NSInteger i = 0; i < 22; i++) {

        

        NSString *name = [NSString stringWithFormat:@"Zombie%ld.tiff",i];

        

        UIImage *image = [UIImage imageNamed:name];

        

        [arr addObject:image];

        

    }

    

    // 将图片数组给imageView赋值

    self.imageView.animationImages = arr;

    self.imageView.animationDuration = 0.1;

    self.imageView.animationRepeatCount = 0;

    [self.imageView startAnimating];

    

    

    

    // UISlider滑动条

    

    UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(20, 70, 335, 50)];

    slider.backgroundColor = [UIColor whiteColor];

    [self.view addSubview:slider];

    [slider release];

    

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

    

    // 改变值上限

    slider.maximumValue = 4;

    slider.minimumValue = 0.1;

    slider.value = slider.maximumValue;

    

    // 开关

    

    UISwitch *swith1 = [[UISwitch alloc] initWithFrame:CGRectMake(20, 120, 100, 40)];

    

    [self.view addSubview:swith1];

    [swith1 release];

    

    [swith1 addTarget:self action:@selector(swithAction:) forControlEvents:UIControlEventValueChanged];

    swith1.on = YES;

    

    // 分段选择器

    

    UISegmentedControl *seg = [[UISegmentedControl alloc] initWithItems:@[@"red",@"blue",@"yellow"]];

    seg.frame = CGRectMake(20, 20, 335, 50);

    seg.backgroundColor = [UIColor whiteColor];

    seg.selectedSegmentIndex = 1;

    [seg addTarget:self action:@selector(segAction:) forControlEvents:UIControlEventValueChanged];

    [self.view addSubview:seg];

    [seg release];

    

    

    UIStepper *stepper = [[UIStepper alloc] initWithFrame:CGRectMake(255, 120, 150, 50)];

    

    stepper.maximumValue = 100;

    stepper.minimumValue = 1;

    stepper.stepValue = 1;

    

    stepper.backgroundColor = [UIColor greenColor];

    [self.view addSubview:stepper];

    [stepper release];

    

}



- (void)segAction:(UISegmentedControl *)seg

{


    switch (seg.selectedSegmentIndex) {

        case 0:

            self.view.backgroundColor = [UIColor redColor];

            break;

        case 1:

            self.view.backgroundColor = [UIColor blueColor];

            break;

        case 2:

            self.view.backgroundColor = [UIColor yellowColor];

            break;

            

        default:

            break;

    }

    


}



- (void)swithAction:(UISwitch *)swith

{

    if (swith.isOn) {

        [self.imageView startAnimating];

    }else{

        [self.imageView stopAnimating];

    }

        

}



- (void)sliderAction:(UISlider *)slider

{


    // slider的值

    NSLog(@"%f",slider.maximumValue - slider.value);

    

    self.imageView.animationDuration = slider.maximumValue - slider.value + 0.1;

    

    [self.imageView startAnimating];


}


Rebuild started: Project: Project *** Using Compiler &#39;V6.22&#39;, folder: &#39;E:\Keil_v5\ARM\ARMCLANG\Bin&#39; Rebuild target &#39;Target 1&#39; assembling startup_stm32f10x_md.s... Start/core_cm3.c(445): error: non-ASM statement in naked function is not supported 445 | uint32_t result=0; | ^ Start/core_cm3.c(442): note: attribute is here 442 | uint32_t __get_PSP(void) __attribute__( ( naked ) ); | ^ Start/core_cm3.c(465): error: parameter references not allowed in naked functions 465 | "BX lr \n\t" : : "r" (topOfProcStack) ); | ^ Start/core_cm3.c(461): note: attribute is here 461 | void __set_PSP(uint32_t topOfProcStack) __attribute__( ( naked ) ); | ^ Start/core_cm3.c(479): error: non-ASM statement in naked function is not supported 479 | uint32_t result=0; | ^ Start/core_cm3.c(476): note: attribute is here 476 | uint32_t __get_MSP(void) __attribute__( ( naked ) ); | ^ Start/core_cm3.c(499): error: parameter references not allowed in naked functions 499 | "BX lr \n\t" : : "r" (topOfMainStack) ); | ^ Start/core_cm3.c(495): note: attribute is here 495 | void __set_MSP(uint32_t topOfMainStack) __attribute__( ( naked ) ); | ^ 4 errors generated. compiling core_cm3.c... compiling misc.c... compiling system_stm32f10x.c... compiling stm32f10x_adc.c... compiling stm32f10x_dac.c... compiling stm32f10x_exti.c... compiling stm32f10x_dbgmcu.c... compiling stm32f10x_dma.c... compiling stm32f10x_crc.c... compiling stm32f10x_cec.c... compiling stm32f10x_bkp.c... compiling stm32f10x_can.c... compiling stm32f10x_flash.c... compiling stm32f10x_pwr.c... compiling stm32f10x_fsmc.c... compiling stm32f10x_
03-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值