无法在 UIbutton 中添加点击事件 [英] cant able to add click event in UIbutton
本文介绍了无法在 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屋!
查看全文