带有 3 个正常状态图像目标的自定义按钮 c.



请帮忙 想要制作一个自定义按钮,当按下一次它打开和关闭并且每个切换开关都有不同的图像时,当按钮按住 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________];

最新更新