以下のようにプログラムでビューとボタンを追加したいと思います。プログラムでボタンを使用してビューを追加する
問題は、ボタンがクリックしても反応しないということです。私はどちらも強調表示されていないか、セレクタを呼び出していないことを意味します。
なぜなら、録音用のリスト行(サウンドファイル)を実装したいからです。リスト行はドリルダウンのために選択可能で、再生ボタンが必要です。だから私はUIView
をサブクラス化するRecordingView
を得て、コンストラクタのターゲットを使ってボタンを追加します。以下のコードを参照してください。
誰も解決策になる可能性があり、これを行うためのより良い方法を持っている場合。
@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;
}
私はボタンを同じように追加すると、直接のView Controllerの.mファイルで、ボタンがクリックに反応しません。したがって、RecordingView
については何かがあります。ここで違う何をする必要がありますか?
さらに、タッチイベントのターゲットとセレクタを提供するためのより良い方法はありますか?
実際のコードですか? 2つのUIImage変数(imGreyとimRed)はどこで宣言されていますか?あなたはイニシャルメソッドを使っているので、イナールにすることはできません。あなたの質問に関連して、あなたは録音のリストが必要だと言います - あなたはテーブルビューの後ですか?録画ビューは代わりに表のセルのサブクラスにできますか? – jrturton
本当に、私はイメージの作成のためのコードを省いた。これは私の実際のコードですが、簡単にするために投稿時には削除しています。私はこれを明らかにするでしょう。はい、録画ビューは代わりに表のセルになります。私はコードからiOSのUIを構築するのが初めてです。これは私の最初のものなので、今後の方向性は大歓迎です。:) – JOG
@jrturton:はい、私はこのコードをUITableViewDelegateの ' - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath'メソッドで使用する予定です。 ...私はそれが動作するようになると、それはあります。 ^^ – JOG