iphone - UISlider第二次卡住

标签 iphone objective-c ios uiimageview uislider

嗨,我有一个 uislider 可以更改 uiimageview 中的图像。第一次它工作得很好,没有延迟。但是,当我单击按钮发布(打开一个模态视图)并关闭模态视图(这是第二次)时,显示图像的 uiimageview 延迟。我找不到它变慢的原因:(

-(IBAction)sliderSlide:(UISlider *)aSlider {

float f=slider.value;
NSString *show=[NSString stringWithFormat:@"%.0f %%",f];
label2.text=show;
NSString *show1=[NSString stringWithFormat:@"%.0f",f];
imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"/Smiley_000%@.png", show1]];

float slid=slider.value;
if(slid>99)
{
    [imageView1 setHidden:NO];
    [imageView2 setHidden:YES];
    NSString *fullpath = [[[NSBundle mainBundle] bundlePath] stringByAppendingString:@"/Smiley_00099.png"];
    imageView.image = [UIImage imageWithContentsOfFile:fullpath];
    secondarray=[NSArray arrayWithObjects:  
                 [UIImage imageNamed:@"Rays_00000.png"],
                 [UIImage imageNamed:@"Rays_00001.png"],
                 [UIImage imageNamed:@"Rays_00002.png"],
                 [UIImage imageNamed:@"Rays_00003.png"],
                 [UIImage imageNamed:@"Rays_00004.png"],
                 [UIImage imageNamed:@"Rays_00005.png"],
                 [UIImage imageNamed:@"Rays_00006.png"],
                 [UIImage imageNamed:@"Rays_00007.png"],
                 [UIImage imageNamed:@"Rays_00008.png"],
                 [UIImage imageNamed:@"Rays_00009.png"],
                 nil];

    imageView1.animationImages = secondarray;        
    // How many seconds it should take to go through all images one time.
    imageView1.animationDuration = 0.5;
    // How many times to repeat the animation (0 for indefinitely).
    imageView1.animationRepeatCount = 0;
    [imageView1 startAnimating];
}
else if (slid<1)
{
    [imageView2 setHidden:NO];
    [imageView1 setHidden:YES];
    NSString *fullpath = [[[NSBundle mainBundle] bundlePath] stringByAppendingString:@"/Smiley_0000.png"];
    imageView.image = [UIImage imageWithContentsOfFile:fullpath];
    firstarray=[NSArray arrayWithObjects:  
                         [UIImage imageNamed:@"Teardrop_00000.png"],
                         [UIImage imageNamed:@"Teardrop_00001.png"],
                         [UIImage imageNamed:@"Teardrop_00002.png"],
                         [UIImage imageNamed:@"Teardrop_00003.png"],
                         [UIImage imageNamed:@"Teardrop_00004.png"],
                         [UIImage imageNamed:@"Teardrop_00005.png"],
                         [UIImage imageNamed:@"Teardrop_00006.png"],
                         [UIImage imageNamed:@"Teardrop_00007.png"],
                         [UIImage imageNamed:@"Teardrop_00008.png"],
                         [UIImage imageNamed:@"Teardrop_00009.png"],
                         [UIImage imageNamed:@"Teardrop_00000.png"],
                         [UIImage imageNamed:@"Teardrop_00000.png"],
                         [UIImage imageNamed:@"Teardrop_00000.png"],
                         [UIImage imageNamed:@"Teardrop_00000.png"],
                         [UIImage imageNamed:@"Teardrop_00000.png"],
                         nil];


    imageView2.animationImages = firstarray;        
    // How many seconds it should take to go through all images one time.
    imageView2.animationDuration = 0.8;

    // How many times to repeat the animation (0 for indefinitely).
    imageView2.animationRepeatCount = 0;
    [imageView2 startAnimating];
    [self.view addSubview:imageView2];
}
else 
{
    [imageView1 setHidden:YES];
    [imageView2 setHidden:YES];
    [imageView1 stopAnimating];
    [imageView2 stopAnimating];
}
[[NSUserDefaults standardUserDefaults] setFloat:slid forKey:@"slider"];
[[NSUserDefaults standardUserDefaults] synchronize];
}

这是我的代码,如果你能明白为什么我第二次滑动 slider 时性能下降,请告诉我

编辑1:

我取消了一些动画, slider 恢复到原来的速度,但现在图片粘在 slider 上,但图片比第一次慢。

最佳答案

好吧,我想说,要使该方法响应更快,第一步是从该委托(delegate)方法中删除所有对象分配和不必要的逻辑。 slider 委托(delegate)方法每秒可以调用超过 100 次(如果将其设置为连续),您实际上应该使用它来仅更新 ivars 并执行最少的逻辑。这很可能是导致您延误的根本原因。至于为什么第二次发生这种情况,也许您在 viewWillAppear 上复制了 slider 设置,因此在模态之后,委托(delegate)方法被调用了两倍。

关于iphone - UISlider第二次卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7350272/

相关文章:

ios - UICollectionView 自定义水平分页布局

ios - swift spritekit中解析Nodes位置时出现 fatal error

ios - 将卡片添加到 Apple Wallet

iphone - 将 iphone 应用程序转换为 iPad

objective-c - CGImageRef 属性保留或不保留

iphone - 处理带有静态单元格和另一个 searchResultsTableView 的 tableview

ios - 适用于iOS的VNC开源

iphone - 如何在 Core Graphics 中生成 RGBA 图像?

ios - 用平行线填充 UIBezierPath

ios - tableview ios 中带有 UILabel 的单元格的动态高度