2012-01-23 15 views
-1

私は2つのラベルと1つのボタンを含むカスタムビューを作成しています。私はボタンをクリックすることができません。私はまた、以下のコードを送信しています。UIbuttonでクリックイベントを追加できない

.hファイル

#import <UIKit/UIKit.h> 


@interface customDeleteButton : UITableViewCell { 

    IBOutlet UILabel *lbl; 
    IBOutlet UILabel *lbl1; 
} 
@property(nonatomic,retain)IBOutlet UILabel *lbl; 
@property(nonatomic,retain)IBOutlet UILabel *lbl1; 
-(IBAction)btnClick:(id)sender; 
@end 

.mファイル

#import "customDeleteButton.h" 


@implementation customDeleteButton 
@synthesize lbl,lbl1; 
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { 

self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
if (self) { 
    // Initialization code. 
    lbl = [[UILabel alloc] initWithFrame:CGRectMake(50, 10, 200, 20)]; 
    lbl1 = [[UILabel alloc] initWithFrame:CGRectMake(260, 10, 200, 20)]; 
    [self addSubview:lbl]; 
    [self addSubview:lbl1]; 

} 
return self; 
} 

- (void)willTransitionToState:(UITableViewCellStateMask)state{ 

[super willTransitionToState:state]; 


if ((state & UITableViewCellStateShowingDeleteConfirmationMask) == UITableViewCellStateShowingDeleteConfirmationMask) { 


for (UIView *subview in self.subviews) { 

    if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"]) {    

     UIButton *btn; 


     btn=[[UIButton alloc]initWithFrame:CGRectMake(0, 0, 64, 33)]; 
     [btn addTarget:subview action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside]; 
     [btn setImage:[UIImage imageNamed:@"delete.png"] forState:UIControlStateNormal]; 
     btn.userInteractionEnabled=YES; 
     btn.frame=CGRectMake(0,0,64,33); 
     //UIImageView *deleteBtn = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 64, 33)]; 
     //[deleteBtn setImage:[UIImage imageNamed:@"delete.png"]]; 
     [[subview.subviews objectAtIndex:0] addSubview:btn]; 
     //[deleteBtn release]; 

    }  

} 
    } 

} 
-(void)btnClick:(id)sender 
{ 
    NSLog(@"HTllo"); 
} 


- (void)setSelected:(BOOL)selected animated:(BOOL)animated { 

    [super setSelected:selected animated:animated]; 

// Configure the view for the selected state. 
} 


- (void)dealloc { 
    [super dealloc]; 
} 

誰が私を助けてくださいよりも、この程度の任意のソリューションを持っている場合。私は緊急を要する。

答えて

0

ターゲットをサブビューではなく自己に変更します。

あなたはそれを作成するときに、サブビューあなたのメインビューにターゲットを設定されていませんする必要があり
UIButton *btn; 


    btn=[[UIButton alloc]initWithFrame:CGRectMake(0, 0, 64, 33)]; 
    [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside]; 
    [btn setImage:[UIImage imageNamed:@"delete.png"] forState:UIControlStateNormal]; 
    btn.userInteractionEnabled=YES; 
    btn.frame=CGRectMake(0,0,64,33); 
    //UIImageView *deleteBtn = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 64, 33)]; 
    //[deleteBtn setImage:[UIImage imageNamed:@"delete.png"]]; 
    [[subview.subviews objectAtIndex:0] addSubview:btn]; 
    //[deleteBtn release]; 
+0

ありがとうしかし、私はそれを試してみました。動いていない。 – Akash

+0

はurボタンでクリックできますか? –

+0

はい。実際には私はそれをプログラムで作成しています。 – Akash

2

[btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside]; 

をし、また - あなたがあなたのコードでやっていることを実現できますか?

関数willTransitionToStateでは、ボタン自体のサブビューにUIButtonsを追加していますか? これは本当にあなたがやりたいことですか?関数willTransitionToStateも呼び出されますか?

+0

が機能しません。 – Akash

+0

私の更新された答えを確認してください –

+0

yes willTransitionToStateがその時に呼び出されたときにボタンを追加したいと思います。 – Akash

1

初期化中にUIButton Typeを設定して、ターゲットを自分に変更してみてください。

 UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; 
     btn.frame = CGRectMake(0, 0, 64, 33); 
     [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside]; 
     [btn setImage:[UIImage imageNamed:@"delete.png"] forState:UIControlStateNormal]; 
     btn.userInteractionEnabled=YES; 
     [[subview.subviews objectAtIndex:0] addSubview:btn]; 
-1
newString = [oldString stringByReplacingOccurrencesOfString:@"-"withString:@" ' "]; 
関連する問題