Я хочу добавить представление и кнопку программно, как показано ниже.Программно добавление вида с помощью кнопки
Проблема в том, что кнопка не реагирует на нажатие. Я имею в виду, что он не подсвечивается или не вызывает селектор.
Причина в том, что я хочу реализовать строку списка для записи (звуковой файл). Строку списка следует выбирать для развертки и иметь кнопку воспроизведения. Поэтому я получил 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
. Что мне нужно делать здесь?
Также есть ли какие-либо лучшие способы обеспечения цели и выбора для события касания?
Это ваш фактический код? Где вы объявляете или заполняете две переменные UIImage (imGrey и imRed)? У вас есть метод init, поэтому они не могут быть иварами? Что касается вашего вопроса, вы говорите, что хотите список записей - вы после просмотра таблицы? Может ли ваш вид записи быть подклассом ячейки таблицы? – jrturton
Правда, я пропустил код для создания изображений. Это мой фактический код, но я удаляю материал при публикации, для простоты. Я уточню это. Да, представление записи может быть ячейкой таблицы. Я новичок в создании iOS UI из кода. Это одно из моих первых, поэтому любые направления вперед приветствуются.:) – JOG
@jrturton: Да, я планирую использовать этот код в UITableViewDelegate, в методе '- (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath'. ... когда я получаю его на работу, то есть. ^^ – JOG