【问题标题】:UIButton flickers when using setBackgroundImage in viewDidLoad在 viewDidLoad 中使用 setBackgroundImage 时 UIButton 闪烁
【发布时间】:2018-02-23 17:48:18
【问题描述】:

我在viewcontroller 中显示UIButton,它包含在navigationcontroller 中。 问题是当视图使用推送转换出现时,按钮会闪烁。

我已经研究过关于 SO 的现有解决方案,但它们似乎都不起作用。

-(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)在viewdidload 中禁用动画(并在viewDidAppear 中启用)但它也禁用了导航控制器动画。 [UIViews setAnimationsDisabled];

【问题讨论】:

  • 可以给我截图吗?
  • 也尝试将这些代码放入viewDidAppear:
  • @NovalAgungPrayogo screenshot 无济于事,因为两个图像之间的过渡时间很短。我试图将代码放在 viewDidAppear 中,但在 viewDidappear 中更改图像时看起来不太好。

标签: ios iphone objective-c uibutton


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    相关资源
    最近更新 更多