2012-04-27 15 views
0

私のアプリでは、1つのUITableViewがあります。テーブルセルでは、2つのラベルと1つのボタンを配置しています。ボタンの高さは(label1 + label2)の高さに等しい。これらはコンテンツを表示するためのものです。ボタンはアクションのためのものです。ここで私の問題はすべての部分でボタンアクションを実行することができません。クリックすると一部の部分だけが動作しています。ボタンアクションin UITableView Cell

は、ここでのコードはいずれかが助けたり、提案することができ、ラベルやボタン

artistButton = [[UIButton alloc] initWithFrame:CGRectMake(11.0, 6.0, 170.0, 50.0)]; 
artistButton.backgroundColor = [UIColor redColor]; 
[self.contentView bringSubviewToFront:artistButton]; 
[self.contentView addSubview:artistButton]; 

artistLabel1 = [[UILabel alloc] initWithFrame:CGRectMake(11.0, 6.0, 170.0, 27.0)]; 
artistLabel1.textAlignment = UITextAlignmentLeft; 
artistLabel1.textColor = [UIColor colorWithRed:0.14 green:0.29 blue:0.42 alpha:1]; 
artistLabel1.font = [UIFont boldSystemFontOfSize:15.0]; 
artistLabel1.backgroundColor = [UIColor blueColor]; 
[self.contentView addSubview:artistLabel1]; 

artistLabel2 = [[UILabel alloc] initWithFrame:CGRectMake(11.0,20.0, 170.0, 27.0)]; 
artistLabel2.textAlignment = UITextAlignmentLeft; 
artistLabel2.textColor = [UIColor grayColor]; 
artistLabel2.font = [UIFont boldSystemFontOfSize:12.0]; 
artistLabel2.backgroundColor = [UIColor grayColor]; 
[self.contentView addSubview:artistLabel2]; 

を配置するために使用しています。 ありがとうございます。

+0

この行を明確にすることができます: "すべての部分のボタンアクション" – sandy

+0

ボタンが必要ですか(セル自体に触れるよりも別のアクションをトリガーしますか?)あなたはtableViewデリゲート( 'tableView:didSelectRowAtIndex:')を使うべきです。ボタンが必要な場合は、 '[UIButton buttonWithType:type]'を使用してボタンを作成する必要があります。 – calimarkus

+0

ラベルがボタンフレームを覆っているように見えます。これらの2つのラベルの内容をボタンのタイトルとして設定してみてください。 ' - (void)setTitle:(NSString *)title forState :(UIControlState)ステート; '。この 'titleLabel'のプロパティを調整して、複数の行にコンテンツを表示させることができます。 –

答えて

2

私の質問に答えが見つかりました。 ボタンとラベルのサイズのために、それは動作していません。 ボタンとラベルの幅と長さを調整しました。 ありがとうございます。

0

はあなたのUIButtonコードを初期化することができ、その後.. UIButton宣言の前

artistButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 

を1行を追加し、このボタンを

artistButton = [[UIButton alloc] initWithFrame:CGRectMake(11.0, 6.0, 170.0, 50.0)]; 
artistButton.backgroundColor = [UIColor redColor]; 

[artistButton addTarget:self 
      action:@selector(ArtistAction) 
forControlEvents:UIControlEventTouchUpInSide]; 

[self.contentView bringSubviewToFront:artistButton]; 
[self.contentView addSubview:artistButton]; 


-(void)ArtistAction 
{ 
    NSLog("Test Artist Action"); 
} 
+0

アクションも追加されました。アクションを実行するが、私は2つのラベルを配置した。しかし、私の問題は、一部のアクションのみが実行している部分です。 –

0

をターゲットアクションを追加します。

0

あなたが設定したフレームが重なっていることがわかっていると思います。 [self.contentView bringSubviewToFront:artistButton];に電話しますが、そのボタンをサブビューとして追加しても効果がありません。 また、ボタンを追加した後に他のサブビューを追加すると、それらはあなたのボタンの上に配置されます。

最初に2つのラベルを追加してからボタンをクリックするだけで、ボタンを適切にクリックできるはずです。ラベルはボタンの下に表示され、どのくらい表示されるかはわかりません。追加しているオブジェクトに対して設定しているフレームを確認します。

0

あなたのセルのためにちょうどtableView:didSelectRowAtIndex:メソッドを使用してください。

関連する問題