我实现了一个代码,用于为按钮提供检查图像,但我想给出没有按钮的检查图像。
注意:如果我点击一个按钮检查图像可以显示,同时我点击另一个按钮检查该特定按钮上显示的图像,前一个按钮到达正常位置。
我在这里实现单个按钮的代码。
-(void) setChecked:(BOOL) check
{
_checked = check;
if( _checked )
{
UIImage* img = [UIImage imageNamed:@"btn_check_on.png"];
[self setImage:img forState:UIControlStateNormal];
}
else
{
UIImage* img = [UIImage imageNamed:@"bread_Wheat_rectangle.png"];
[self setImage:img forState:UIControlStateNormal];
}
}
上述代码已成功执行,但如何将此代码用于no按钮。
请建议任何有关我的问题的教程
答案 0 :(得分:3)
这就是我为一个按钮实现它的方式。您也可以将它用于更多按钮。
-(IBAction)ButtonAction
{
if (Flag==0)
{
Flag=1;
[myButton setImage:[UIImage imageNamed:@"checkbox-filled.png"] forState:UIControlStateNormal];
}
else
{
[myButton setImage:[UIImage imageNamed:@"checkbox.png"] forState:UIControlStateNormal];
Flag=0;
}
}
注意:如果您只需要检查一个按钮,请将所有其他按钮图像设置为checkbox.png,将所选按钮设置为checkbox-filled.png。
修改强>
您可以为复选框创建一个类,然后使用它。这是代码......
CheckButton.h
#import <Foundation/Foundation.h>
@interface CheckButton : UIButton {
BOOL _checked;
int chkButtonClickVal;
}
@property (nonatomic, setter=setChecked:) BOOL checked;
-(void) setChecked:(BOOL) check;
-(int)chkButtonClickVal;
@end
CheckButton.m
#import "CheckButton.h"
@implementation CheckButton
@synthesize checked = _checked;
-(id) init
{
if( self=[super init] )
{
chkButtonClickVal=0;
self.checked = NO;
[self addTarget:self action:@selector(OnCheck:) forControlEvents:UIControlEventTouchUpInside];
}
return self;
}
-(void) awakeFromNib
{
self.checked = NO;
[self addTarget:self action:@selector(OnCheck:) forControlEvents:UIControlEventTouchUpInside];
}
-(void) dealloc
{
chkButtonClickVal=0;
[super dealloc];
}
-(void) setChecked:(BOOL) check
{
_checked = check;
if( _checked )
{
UIImage* img = [UIImage imageNamed:@"checkbox-checked.png"];
[self setImage:img forState:UIControlStateNormal];
chkButtonClickVal=1;
}
else
{
UIImage* img = [UIImage imageNamed:@"checkbox.png"];
[self setImage:img forState:UIControlStateNormal];
chkButtonClickVal=2;
}
//NSLog(@"%d",chkButtonClickVal);
}
-(int)chkButtonClickVal
{
return chkButtonClickVal;
}
-(void) OnCheck:(id) sender
{
self.checked = !_checked;
}
@end
我以同样的方式完成了它。试着你将能够实现它。 祝你好运:)
答案 1 :(得分:0)
经过长期练习这个问题,我们可以使用切换案例,它可以很容易地完成
switch (currenttagvalue) {
case 1:
[level1 setImage:[UIImage imageNamed:@"one_time_selected.png"] forState:UIControlStateNormal];
[level2 setImage:[UIImage imageNamed:@"ic_launcher.png"] forState:UIControlStateNormal];
[level3 setImage:[UIImage imageNamed:@"bread_sourdough_rectangle.png"] forState:UIControlStateNormal];
}
在这个级别是“IBOutlet UIButton level1;”
然后我实现了更多按钮