请帮忙 想要制作一个自定义按钮,当按下一次它打开和关闭并且每个切换开关都有不同的图像时,当按钮按住 3 秒时,它会切换到不同的状态并更改为另一个图像。 这是我来自 .m 文件的代码:
enter code here -(IBAction)custompowerbutton:(id)sender{ UIButton *btn = (UIButton *)sender;
UILongPressGestureRecognizer *holdButton = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(holdButton:)];
holdButton.minimumPressDuration = 3.0; //seconds
[btn addGestureRecognizer:holdButton];
if( [[btn imageForState:UIControlStateNormal] isEqual:[UIImage imageNamed:@"offbutton.png"]])
{
btn.highlighted = YES;
[btn setImage:[UIImage imageNamed:@"onbutton.png"] forState:UIControlStateNormal];
[btn setImage:[UIImage imageNamed:@"highlightedonbutton.png"] forState:UIControlStateHighlighted];
label2.text = @"On";
}
if([label2.text isEqual: @"ignation On"])
{
btn.highlighted = YES;
[btn setImage:[UIImage imageNamed:@"ignitionbutton.png"] forState:UIControlStateNormal];
[btn setImage:[UIImage imageNamed:@"highlightedignitionbutton.png"] forState:UIControlStateHighlighted]; }
else
{
btn.highlighted = YES;
[btn setImage:[UIImage imageNamed:@"offbutton.png"] forState:UIControlStateNormal];
[btn setImage:[UIImage imageNamed:@"highlightedoffbutton.png"] forState:UIControlStateHighlighted];
label2.text = @"off";
}}- (void)holdButton:(UILongPressGestureRecognizer*)gesture{if ( gesture.state == UIGestureRecognizerStateEnded )
{
label2.text = @"ignition On";
}}
创建两个图像数组。创建两个方法并将它们添加到按钮。一种方法是敲击按钮,另一种方法是握住她。在第一种方法中setImage:forState:
使用该方法更改第 1 个数组中的图像。在第二种方法中setImage:forState:
使用该方法从第二个数组更改图像。它会很简单。
此示例应有助于:
[cellOverView addTarget:_____ action:@selector(______) forControlEvents:UIControlEvent________];