无法在 UIbutton 中添加点击事件 [英] cant able to add click event in UIbutton

查看:32
本文介绍了无法在 UIbutton 中添加点击事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在创建包含两个标签和一个按钮的自定义视图.我无法点击按钮.我也发送了下面的代码.

I am creating custom view which include two labels and One button. I cant get the button click. I am also sending the code which is below.

.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];
}

推荐答案

创建时需要将目标设置为主视图而不是子视图:

You need to set the target to your main view not the subviews, when you create it:

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

还有 - 您是否意识到自己在代码中做了什么?

And also - do you realize what you're doing in your code?

在函数 willTransitionToState 中,您将 UIButton 添加到按钮本身的子视图中?这真的是你想做的吗?函数 willTransitionToState 甚至被调用了吗?

In a function willTransitionToState you are adding UIButtons to subviews of the button itself? Is this really what you want to do? Is the function willTransitionToState even called?

这篇关于无法在 UIbutton 中添加点击事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆