gpt4 book ai didi

iphone - UIButton 图像不会正确更改

转载 作者:行者123 更新时间:2023-12-03 21:21:04 25 4
gpt4 key购买 nike

我有一个 UIButton,我将其图像更改了两次。

这两项更改都有效,但前提是其中一项更改被执行。

例如第一条语句更改了图像并且可以看到它,但前提是第二条语句未运行。如果我运行这两个语句,则只能看到最后一个图像更改。

它似乎跳过了第一个图像更改。

这些执行在计时器中运行,我在第二次图像更改时有轻微的延迟,希望避免这个问题。

即使我将延迟更改为似乎有足够的时间来看到图像变化,但视觉上没有变化。

如何避免此问题并更改 UIButtons 图像两次,使两次更改都可见?

编辑->

[A1 setImage:[UIImage imageNamed:fileString] forState:UIControlStateNormal];            
[self performSelector:@selector(changeImage:withString:) withObject:A1 withObject:fileString2];

我调用这些方法

 -(void) changeImage: (UIButton *) button withString: (NSString *) string
{
[button setImage:[UIImage imageNamed:string] forState:UIControlStateNormal];
}

-(void) startInvocation: (UIButton *) button withString: (NSString *) string
{
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:
[self methodSignatureForSelector:@selector(changeImage:withString:)]];
[invocation setTarget:self];
[invocation setSelector:@selector(changeImage:withString:)];
[invocation setArgument:button atIndex:2];
[invocation setArgument:string atIndex:3];
[NSTimer scheduledTimerWithTimeInterval:0.15f invocation:invocation repeats:NO];
}

谢谢

最佳答案

如果在同一事件循环中两次更改图像,则只能看到第二个图像。设置第一个图像,然后启动 NSTimer 并对事件进行编程以设置第二个图像。您应该会看到更改。

-(void)switchImage {
image.image = [UIImage imageNamed:@"dai00003.jpg"];
}

-(IBAction) run {
image.image = [UIImage imageNamed:@"dai00001.jpg"];
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(switchImage) userInfo:nil repeats:NO];
}

关于iphone - UIButton 图像不会正确更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4556012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com