在Xcode 5.1.1和iOS SDK 7.1中禁用按钮时,我遇到了一个非常奇怪的问题。
当我在- (void)viewDidLoad
或- (void)viewWillAppear:(BOOL)animated
或nib
中停用按钮时,我的按钮会被隐藏。
相同的代码适用于iOS 7.0及更低版本。
myButton.enabled = NO;
这是Apple的bug吗? 我曾尝试过不同的项目,但结果是一样的。
答案 0 :(得分:0)
我正在使用Xcode 5.1,它在iOS 6到iOS 7.1上运行良好。
可能性是: 检查按钮是系统还是自定义。它总是应该是定制的。尝试将按钮设为myButton.enabled = YES;并查看iOS 7.1中隐藏的按钮。 然后检查是否在nib文件中,为按钮的禁用状态设置了清除颜色。
答案 1 :(得分:0)
可能是您的按钮位于另一个ui对象(即UIView)下方,因此它被隐藏和禁用。如果启用了另一个视图的用户交互,并且此视图恰好位于按钮上方,则该视图将接管触摸事件。另一个问题可能是你的按钮超出了超级视图的界限,这个超级视图启用了clipToSubview。
答案 2 :(得分:0)
实际上我在设置图像时存在问题。我正在使用SpriteSheet设置每个按钮的图像。在切片和在背景中调整大小后,图像会动态添加。因此,无论按钮状态如何,它都设置为已禁用和正常状态的图像。
现在要解决这个问题,我检查了按钮的状态,只是设置了它的
if (myButton.state == UIControlStateDisabled)
{
myButton.enabled = YES;
[myButton setImage:returnImage forState:UIControlStateNormal]; // return Image is the image which i get from sprite sheet after slicing and resizing.
myButton.enabled = NO;
}