我想以编程方式添加一个视图和一个按钮,如下所示。
问题是单击按钮时按钮没有反应。我的意思是它既不会突出显示也不会调用选择器。
原因是我想为录音(声音文件)实现一个列表行。列表行应该可以选择进行向下钻取,并有一个播放按钮。所以我得到了一个RecordingView
子类化UIView
它本身使用构造函数中的目标添加按钮。请参阅下面的代码。
如果有人有更好的方法来做到这一点,这也可能是一个解决方案。
@implementation MyViewController
- (IBAction) myAction {
RecordingView *recordingView = [[RecordingView alloc] initWithFrame:CGRectMake(30, 400, 130, 50)withTarget:self];
[recordingView setUserInteractionEnabled:YES];
[[self view] addSubview:recordingView];
}
@implementation RecordingView
- (id)initWithFrame:(CGRect)frame withTarget:(id) target
{
self = [super initWithFrame:frame];
UIButton *playButton = [[UIButton alloc] initWithFrame:CGRectMake(185, 5, 80, 40)];
[playButton setTitle:@"Play" forState:UIControlStateNormal];
[playButton setTitleColor:[UIColor darkTextColor]forState:UIControlStateNormal];
// creating images here ...
[playButton setBackgroundImage:imGray forState: UIControlStateNormal];
[playButton setBackgroundImage:imRed forState: UIControlStateHighlighted];
[playButton setEnabled:YES];
[playButton setUserInteractionEnabled:YES];
[playButton addTarget: target
action: @selector(buttonClicked:)
forControlEvents: UIControlEventTouchDown];
[self addSubview:playButton];
return self;
}
当我以同样的方式直接在视图控制器 .m 文件中添加按钮时,按钮确实会在单击时做出反应。所以有一些关于RecordingView
。我需要在这里做些什么不同的事情?
另外,有没有更好的方法来提供触摸事件的目标和选择器?