Я хочу добавить вид и кнопку программно, как показано ниже.
Проблема в том, что кнопка не реагирует на нажатия. Я имею в виду, что она не подсвечивается и не вызывает селектор.
Причина в том, что я хочу реализовать строку списка для записи (звуковой файл). Строка списка должна быть выбрана для детализации и иметь кнопку воспроизведения. Итак, я получил 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
. Что мне нужно сделать здесь по-другому?
Кроме того, есть ли лучшие способы предоставить цель и селектор для сенсорного события?