Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在viewDidLoad中使用setBackgroundImage时,UIButton闪烁_Ios_Iphone_Objective C_Uibutton - Fatal编程技术网

Ios 在viewDidLoad中使用setBackgroundImage时,UIButton闪烁

Ios 在viewDidLoad中使用setBackgroundImage时,UIButton闪烁,ios,iphone,objective-c,uibutton,Ios,Iphone,Objective C,Uibutton,我正在viewcontroller中显示ui按钮,该按钮包含在navigationcontroller中。 问题是,当视图使用“按下转换”显示时,按钮会闪烁 我已经研究了现有的解决方案,但似乎没有一个有效 -(void)viewDidLoad{ //call to super [button setBackgroundImage:[UIImage imageNamed:@"NormalImage"] forState:UIControlStateNormal]; [button setBac

我正在
viewcontroller
中显示
ui按钮
,该按钮包含在
navigationcontroller
中。 问题是,当视图使用“按下转换”显示时,按钮会闪烁

我已经研究了现有的解决方案,但似乎没有一个有效

-(void)viewDidLoad{
//call to super

[button setBackgroundImage:[UIImage imageNamed:@"NormalImage"]  forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:@"SelectedImage"]  forState:forState:UIControlStateSelected];
[button setBackgroundImage:[UIImage imageNamed:@"SelectedImage"]  forState:UIControlStateHighlighted];

}
1) 我尝试改用setImage,但它不起作用。事实上,它根本不显示图像。 2) 禁用动画可在
viewdiload
中工作(并在
viewdilease
中启用),但它也禁用了导航控制器动画。
[UIViews setAnimationsDisabled]

是否通过界面生成器为按钮指定了不同的背景图像?。 这里可能发生的情况是,您的按钮在Interface Builder中指定了一组不同的图像,并且您在加载视图并可能已经显示视图后正在更改背景,因此您会看到闪烁。
如果可能的话,我建议您直接在xib文件中配置按钮

你能显示屏幕截图吗?同时试着把这些代码放到
视图中显示:
@NovalAgungPrayogo屏幕截图不会有帮助,因为两个图像之间的转换时间很短。我试图将代码放在ViewDidDisplay中,但在ViewDidDisplay中更改图像时,代码看起来不太好。