0

ボタンのチェック画像を提供するためのコードを実装した後、ボタンの数のチェック画像を提供したいと思います。

注:1つのボタンをクリックすると、チェック画像が表示され、同時に別のボタンをクリックすると、その特定のボタンに表示されているチェック画像が表示され、前のボタンが通常の位置になります。

私はこのようにここにシングルボタンのコードを実装します。

-(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];


}


}

上記のコードは正常に実行されましたが、このコードをボタンなしで使用する方法。

私の問題に関するチュートリアルを提案してください

4

2 に答える 2

3

This is how I have implemented it for one button. You can use it for more buttons too.

-(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;

    }
}

Note : If you want only one button to get checked Just set all other buttons image as checkbox.png and the selected one's checkbox-filled.png.

EDIT

You can make a class for checkbox and then use it. Here is the code...

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

I have done it in same way. Try you'll be able to achieve it. Good Luck :)

于 2012-04-17T04:45:58.773 に答える
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];

        }

このレベルには「IBOutletUIButtonlevel1;」があります。

そして、私はもっと多くのボタンを実装します

于 2012-04-18T08:54:24.073 に答える