使用 Normal/Highlighted 图像创建自定义 UIButton
Creating a Custom UIButton with a Normal/Highlighted image
我正在尝试制作一个按钮,用于在突出显示或不突出显示时切换图像。但是下面的代码不会切换图像,甚至不会调用选定的方法..
UIButton *shootButton = [UIButton buttonWithType:UIButtonTypeCustom];
[shootButton setImage:[UIImage imageNamed:@"Button_Normal"] forState:UIControlStateNormal];
[shootButton setImage:[UIImage imageNamed:@"Button_Highlighted"] forState:UIControlStateHighlighted];
shootButton.frame = CGRectMake(0, 0, 80, 80);
[shootButton addTarget:self action:@selector(shoot) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:shootButton];
我做错了什么?我正在查看类似的答案,它告诉我我做对了..
我假设您完全确定图像名称是正确的并且在您的项目中。
如果您要执行 [self addSubview]
,则必须将按钮添加为 UIView
的子类。不确定您添加按钮的方法是什么,但它可能不是正确的方法。相反,尝试在包含 UIView
的 UIViewController
中添加 viewDidLoad
或 viewWillAppear
中的按钮
添加这些以检测按钮的状态:
[self.botonSeguir addTarget:self action:@selector(setBgColorForButton:) forControlEvents:UIControlEventTouchDown];
[self.botonSeguir addTarget:self action:@selector(clearBgColorForButton:) forControlEvents:UIControlEventTouchDragExit];
[self.botonSeguir addTarget:self action:@selector(setBgColorForButton:) forControlEvents:UIControlEventTouchDragEnter];
第一个检测按下按钮时(尚未松开手指)
第二个检测您仍在触摸屏幕按钮时将手指移开按钮
如果您在第二次之后返回到按钮,则第三次触发。
然后创建方法 setBgColorForButton、clearBgColorForButton 和 setBgColorForButton。
我正在尝试制作一个按钮,用于在突出显示或不突出显示时切换图像。但是下面的代码不会切换图像,甚至不会调用选定的方法..
UIButton *shootButton = [UIButton buttonWithType:UIButtonTypeCustom];
[shootButton setImage:[UIImage imageNamed:@"Button_Normal"] forState:UIControlStateNormal];
[shootButton setImage:[UIImage imageNamed:@"Button_Highlighted"] forState:UIControlStateHighlighted];
shootButton.frame = CGRectMake(0, 0, 80, 80);
[shootButton addTarget:self action:@selector(shoot) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:shootButton];
我做错了什么?我正在查看类似的答案,它告诉我我做对了..
我假设您完全确定图像名称是正确的并且在您的项目中。
如果您要执行 [self addSubview]
,则必须将按钮添加为 UIView
的子类。不确定您添加按钮的方法是什么,但它可能不是正确的方法。相反,尝试在包含 UIView
UIViewController
中添加 viewDidLoad
或 viewWillAppear
中的按钮
添加这些以检测按钮的状态:
[self.botonSeguir addTarget:self action:@selector(setBgColorForButton:) forControlEvents:UIControlEventTouchDown];
[self.botonSeguir addTarget:self action:@selector(clearBgColorForButton:) forControlEvents:UIControlEventTouchDragExit];
[self.botonSeguir addTarget:self action:@selector(setBgColorForButton:) forControlEvents:UIControlEventTouchDragEnter];
第一个检测按下按钮时(尚未松开手指)
第二个检测您仍在触摸屏幕按钮时将手指移开按钮
如果您在第二次之后返回到按钮,则第三次触发。
然后创建方法 setBgColorForButton、clearBgColorForButton 和 setBgColorForButton。