如何在ios中选中和取消选中按钮
我是iOS初学者,在我的项目中,我为用户插入了“3”个按钮“检查”和“取消检查”,如下图所示 在这里,我的主要要求是当我点击“选中”按钮时,它应该是“未选中的”,当我点击“未选中”按钮时,它应该是“选中的”,如下图所示 剩下的两个按钮必须是“未选中的”,为此,我写了下面的代码,但这是一个太长的过程。有人能解释一下简单而简短的过程吗 我的代码:-如何在ios中选中和取消选中按钮,ios,objective-c,Ios,Objective C,我是iOS初学者,在我的项目中,我为用户插入了“3”个按钮“检查”和“取消检查”,如下图所示 在这里,我的主要要求是当我点击“选中”按钮时,它应该是“未选中的”,当我点击“未选中”按钮时,它应该是“选中的”,如下图所示 剩下的两个按钮必须是“未选中的”,为此,我写了下面的代码,但这是一个太长的过程。有人能解释一下简单而简短的过程吗 我的代码:- 只要尝试下面的代码,它的简单解决方案 BOOL checked; -(void)viewDidLoad { checked = YES; /
只要尝试下面的代码,它的简单解决方案
BOOL checked;
-(void)viewDidLoad {
checked = YES; //Set depending on your initial state
}
-(IBACtion)pressed:(UIButton *)sender {
checked = !checked;
[sender setImage:[UIImage imageNamed:((checked) ? @"check2.png" : @"NOTCHECKEDIMAGE.png")] forState:UIControlStateNormal];
}
可能会对您有所帮助。
另一个解决方案
这里还有Diff库,你也可以试试
只要尝试下面的代码,它的简单解决方案
BOOL checked;
-(void)viewDidLoad {
checked = YES; //Set depending on your initial state
}
-(IBACtion)pressed:(UIButton *)sender {
checked = !checked;
[sender setImage:[UIImage imageNamed:((checked) ? @"check2.png" : @"NOTCHECKEDIMAGE.png")] forState:UIControlStateNormal];
}
可能会对您有所帮助。
另一个解决方案
这里还有Diff库,你也可以试试
请喜欢。太简单了
UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];
[button1 addTarget:self
action:@selector(aMethod1:)
forControlEvents:UIControlEventTouchUpInside];
button1.frame = CGRectMake(10.0, 100.0, 30.0, 30.0);
UIImage *btnImage1 = [UIImage imageNamed:@"uncheck.png"];
UIImage *selected = [UIImage imageNamed:@"check.png"];
[button1 setImage:btnImage1 forState:UIControlStateNormal];
[button1 setImage:selected forState:UIControlStateSelected];
button1.selected = NO;
- (void)aMethod1:(UIButton *)btn{
btn.selected = !btn.selected;
}
请喜欢。太简单了
UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];
[button1 addTarget:self
action:@selector(aMethod1:)
forControlEvents:UIControlEventTouchUpInside];
button1.frame = CGRectMake(10.0, 100.0, 30.0, 30.0);
UIImage *btnImage1 = [UIImage imageNamed:@"uncheck.png"];
UIImage *selected = [UIImage imageNamed:@"check.png"];
[button1 setImage:btnImage1 forState:UIControlStateNormal];
[button1 setImage:selected forState:UIControlStateSelected];
button1.selected = NO;
- (void)aMethod1:(UIButton *)btn{
btn.selected = !btn.selected;
}
试试这个,会帮助你,让它变得简单
@interface ViewController ()
{
int check1;
int check2;
int check3;
UIButton * button1;
UIButton * button2;
UIButton * button3;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
check1 = 0;
check2 = 0;
check3 = 0;
button1 = [UIButton buttonWithType:UIButtonTypeCustom];
[button1 addTarget:self
action:@selector(checkNdUncheckButtons:)
forControlEvents:UIControlEventTouchUpInside];
button1.tag = 100;
button1.frame = CGRectMake(10.0, 100.0, 30.0, 30.0);
UIImage *btnImage1 = [UIImage imageNamed:@"uncheck.png"];
[button1 setImage:btnImage1 forState:UIControlStateNormal];
[self.view addSubview:button1];
button2 = [UIButton buttonWithType:UIButtonTypeCustom];
[button2 addTarget:self
action:@selector(checkNdUncheckButtons:)
forControlEvents:UIControlEventTouchUpInside];
button2.tag = 200;
button2.frame = CGRectMake(50.0, 100.0, 30.0, 30.0);
UIImage *btnImage2 = [UIImage imageNamed:@"uncheck.png"];
[button2 setImage:btnImage2 forState:UIControlStateNormal];
[self.view addSubview:button2];
button3 = [UIButton buttonWithType:UIButtonTypeCustom];
[button3 addTarget:self
action:@selector(checkNdUncheckButtons:)
forControlEvents:UIControlEventTouchUpInside];
button3.tag = 300;
button3.frame = CGRectMake(100.0, 100.0, 30.0, 30.0);
UIImage *btnImage3 = [UIImage imageNamed:@"uncheck.png"];
[button3 setImage:btnImage3 forState:UIControlStateNormal];
[self.view addSubview:button3];
}
-(void)checkNdUncheckButtons :(id)sender{
UIButton *selectedButton = (UIButton*)sender;
UIImage *checkimage = [UIImage imageNamed:@"check.png"];
UIImage *unCheckImage = [UIImage imageNamed:@"uncheck.png"];
if (selectedButton.tag == 100) {
if (button1.image == checkimage) {
[button1 setImage:unCheckImage forState:UIControlStateNormal];
} else {
[button1 setImage:checkimage forState:UIControlStateNormal];
}
[button2 setImage:unCheckImage forState:UIControlStateNormal];
[button3 setImage:unCheckImage forState:UIControlStateNormal];
}
else if (selectedButton.tag == 200){
[button1 setImage:unCheckImage forState:UIControlStateNormal];
if (button2.image == checkimage) {
[button2 setImage:unCheckImage forState:UIControlStateNormal];
}
else {
[button2 setImage:checkimage forState:UIControlStateNormal];
}
[button3 setImage:unCheckImage forState:UIControlStateNormal];
}
else {
[button1 setImage:unCheckImage forState:UIControlStateNormal];
[button2 setImage:unCheckImage forState:UIControlStateNormal];
if (button3.image == checkimage) {
[button3 setImage:unCheckImage forState:UIControlStateNormal];
}
else {
[button3 setImage:checkimage forState:UIControlStateNormal];
}
}
试着理解代码,然后在代码中实现,然后去做试试这个,它会帮助你,让你变得简单
@interface ViewController ()
{
int check1;
int check2;
int check3;
UIButton * button1;
UIButton * button2;
UIButton * button3;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
check1 = 0;
check2 = 0;
check3 = 0;
button1 = [UIButton buttonWithType:UIButtonTypeCustom];
[button1 addTarget:self
action:@selector(checkNdUncheckButtons:)
forControlEvents:UIControlEventTouchUpInside];
button1.tag = 100;
button1.frame = CGRectMake(10.0, 100.0, 30.0, 30.0);
UIImage *btnImage1 = [UIImage imageNamed:@"uncheck.png"];
[button1 setImage:btnImage1 forState:UIControlStateNormal];
[self.view addSubview:button1];
button2 = [UIButton buttonWithType:UIButtonTypeCustom];
[button2 addTarget:self
action:@selector(checkNdUncheckButtons:)
forControlEvents:UIControlEventTouchUpInside];
button2.tag = 200;
button2.frame = CGRectMake(50.0, 100.0, 30.0, 30.0);
UIImage *btnImage2 = [UIImage imageNamed:@"uncheck.png"];
[button2 setImage:btnImage2 forState:UIControlStateNormal];
[self.view addSubview:button2];
button3 = [UIButton buttonWithType:UIButtonTypeCustom];
[button3 addTarget:self
action:@selector(checkNdUncheckButtons:)
forControlEvents:UIControlEventTouchUpInside];
button3.tag = 300;
button3.frame = CGRectMake(100.0, 100.0, 30.0, 30.0);
UIImage *btnImage3 = [UIImage imageNamed:@"uncheck.png"];
[button3 setImage:btnImage3 forState:UIControlStateNormal];
[self.view addSubview:button3];
}
-(void)checkNdUncheckButtons :(id)sender{
UIButton *selectedButton = (UIButton*)sender;
UIImage *checkimage = [UIImage imageNamed:@"check.png"];
UIImage *unCheckImage = [UIImage imageNamed:@"uncheck.png"];
if (selectedButton.tag == 100) {
if (button1.image == checkimage) {
[button1 setImage:unCheckImage forState:UIControlStateNormal];
} else {
[button1 setImage:checkimage forState:UIControlStateNormal];
}
[button2 setImage:unCheckImage forState:UIControlStateNormal];
[button3 setImage:unCheckImage forState:UIControlStateNormal];
}
else if (selectedButton.tag == 200){
[button1 setImage:unCheckImage forState:UIControlStateNormal];
if (button2.image == checkimage) {
[button2 setImage:unCheckImage forState:UIControlStateNormal];
}
else {
[button2 setImage:checkimage forState:UIControlStateNormal];
}
[button3 setImage:unCheckImage forState:UIControlStateNormal];
}
else {
[button1 setImage:unCheckImage forState:UIControlStateNormal];
[button2 setImage:unCheckImage forState:UIControlStateNormal];
if (button3.image == checkimage) {
[button3 setImage:unCheckImage forState:UIControlStateNormal];
}
else {
[button3 setImage:checkimage forState:UIControlStateNormal];
}
}
尝试理解并在代码中实现,然后执行它请在代码中尝试下面的更正
@interface ViewController ()
{
UIButton * button1;
UIButton * button2;
UIButton * button3;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIImage *btnImage1 = [UIImage imageNamed:@"uncheck.png"];
UIImage *btnImage2 = [UIImage imageNamed:@"check.png"];
button1 = [UIButton buttonWithType:UIButtonTypeCustom];
[button1 addTarget:self action:@selector(aMethod1:)
forControlEvents:UIControlEventTouchUpInside];
button1.frame = CGRectMake(10.0, 100.0, 30.0, 30.0);
UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];
[button1 setImage:btnImage1 forState:UIControlStateNormal];
[button1 setImage:btnImage2 forState:UIControlStateSelected];
button1.selected = NO;
[self.view addSubview:button1];
button2 = [UIButton buttonWithType:UIButtonTypeCustom];
[button2 addTarget:self action:@selector(aMethod2:)
forControlEvents:UIControlEventTouchUpInside];
button2.frame = CGRectMake(50.0, 100.0, 30.0, 30.0);
[button2 setImage:btnImage1 forState:UIControlStateNormal];
[button2 setImage:btnImage2 forState:UIControlStateSelected];
button2.selected = NO;
[self.view addSubview:button2];
button3 = [UIButton buttonWithType:UIButtonTypeCustom];
[button3 addTarget:self action:@selector(aMethod3:)
forControlEvents:UIControlEventTouchUpInside];
button3.frame = CGRectMake(100.0, 100.0, 30.0, 30.0);
[button3 setImage:btnImage1 forState:UIControlStateNormal];
[button3 setImage:btnImage2 forState:UIControlStateSelected];
button3.selected = NO;
[self.view addSubview:button3];
}
-(void)aMethod1 :(id)sender {
button1.selected = !button1.selected;
}
-(void)aMethod2 :(id)sender {
button2.selected = !button2.selected;
}
-(void)aMethod3 :(id)sender {
button3.selected = !button3.selected;
}
谢谢:)请尝试下面的代码更正
@interface ViewController ()
{
UIButton * button1;
UIButton * button2;
UIButton * button3;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIImage *btnImage1 = [UIImage imageNamed:@"uncheck.png"];
UIImage *btnImage2 = [UIImage imageNamed:@"check.png"];
button1 = [UIButton buttonWithType:UIButtonTypeCustom];
[button1 addTarget:self action:@selector(aMethod1:)
forControlEvents:UIControlEventTouchUpInside];
button1.frame = CGRectMake(10.0, 100.0, 30.0, 30.0);
UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];
[button1 setImage:btnImage1 forState:UIControlStateNormal];
[button1 setImage:btnImage2 forState:UIControlStateSelected];
button1.selected = NO;
[self.view addSubview:button1];
button2 = [UIButton buttonWithType:UIButtonTypeCustom];
[button2 addTarget:self action:@selector(aMethod2:)
forControlEvents:UIControlEventTouchUpInside];
button2.frame = CGRectMake(50.0, 100.0, 30.0, 30.0);
[button2 setImage:btnImage1 forState:UIControlStateNormal];
[button2 setImage:btnImage2 forState:UIControlStateSelected];
button2.selected = NO;
[self.view addSubview:button2];
button3 = [UIButton buttonWithType:UIButtonTypeCustom];
[button3 addTarget:self action:@selector(aMethod3:)
forControlEvents:UIControlEventTouchUpInside];
button3.frame = CGRectMake(100.0, 100.0, 30.0, 30.0);
[button3 setImage:btnImage1 forState:UIControlStateNormal];
[button3 setImage:btnImage2 forState:UIControlStateSelected];
button3.selected = NO;
[self.view addSubview:button3];
}
-(void)aMethod1 :(id)sender {
button1.selected = !button1.selected;
}
-(void)aMethod2 :(id)sender {
button2.selected = !button2.selected;
}
-(void)aMethod3 :(id)sender {
button3.selected = !button3.selected;
}
谢谢:)首先将图像重命名为check_0.png(未选中图像)和check_1.png(选中图像) 步骤1:在接口中声明一个全局 步骤2:在viewDidLoad中初始化此数组并添加数据 步骤4:假设第一个按钮已选中
如果您还需要什么,请告诉我。首先将图像重命名为check_0.png(未选中图像)和check_1.png(选中图像) 步骤1:在接口中声明一个全局 步骤2:在viewDidLoad中初始化此数组并添加数据 步骤4:假设第一个按钮已选中
如果您还需要什么,请告诉我。了解如何在UIButtons应用程序中使用标记。。。1小时后我会发布简短的回答。。对不起,现在是我休息的时间…好的,我会等你的代码,我会在10分钟后发布答案…发布答案。。。检查并让我知道,如果你还需要什么…学习如何使用标签在应用程序中的UIButtons。。。1小时后我会发布简短的回答。。对不起,现在是我休息的时间…好的,我会等你的代码,我会在10分钟后发布答案…发布答案。。。检查并让我知道如果你还需要什么…嗨,拉吉,当我取消按钮时,它必须uncheck@Ramakrishna:谢谢你接受我的回答。。。嗨raji当我取消选中按钮时它必须uncheck@Ramakrishna:谢谢你接受我的回答@NSPratik,我已经阅读并给出了正确的解决方案。我们只能给出最接近的解决方案,我们无法编写完整的代码,他必须这样做。我应该给他暗示或者帮助他。如果你有答案,请把它贴出来。编辑答案很容易,但编写完美的解决方案却不那么容易。事实上,问问题的人想要管理多个按钮及其所选状态,这就是我告诉你的原因。是的,Pratik,我也是Ahmedabad人,你为哪家公司工作过?@Pratik,我同意你的看法。下次我来处理这件事。让我们一起去吧。@NSPratik,我已经阅读并给出了正确的解决方案。我们只能给出最接近的解决方案,我们无法编写完整的代码,他必须这样做。我应该给他暗示或者帮助他。如果你有答案,请把它贴出来。编辑答案很容易,但编写完美的解决方案却不那么容易。事实上,问问题的人想要管理多个按钮及其所选状态,这就是我告诉你的原因。是的,Pratik,我也是Ahmedabad人,你为哪家公司工作过?@Pratik,我同意你的看法。下次我来处理这件事,让我们来。
[self initArrayData];
-(void) initArrayData {
selctionArray = [[NSMutableArray alloc] init];
for (int i=0;i<3;i++) {
[selctionArray addObject:@"0"];
}
}
button1.tag = 123451;
button2.tag = 123452;
button3.tag = 123453;
// by-default first button will be checked
[selctionArray replaceObjectAtIndex:0 withObject:@"1"];
[self updateMyButtons];
-(void) updateMyButtons {
UIButton *mButton;
for (int i=0;i<3;i++) {
mButton = (UIButton *)[self.view viewWithTag:123451+i];
[mButton setBackgroundImage:[UIImage imageNamed:[NSString stringWithFormat:@"check_%@.png", [selctionArray objectAtIndex:i]] forState:UIControlStateNormal];
}
}
-(IBAction)clikcedButton:(id)sender {
[self initArrayData];
UIButton *mButton = (UIButton *) sender;
int clickedButtonTag = mButton.tag;
clickedButtonTag = clickedButtonTag - 123451;
[selctionArray replaceObjectAtIndex:clickedButtonTag withObject:@"1"];
[self updateMyButtons];
}