2011-07-12 16 views
2

私はラベルと2つのボタンからなるビューを持っています。これはUIView *footerViewという名前です。私はこれをテーブルビューの最後のセクションで実装しています。UItableViewCell内でUIButtonが動作しない

私は、細胞内のビューを見ることができます:私は、このビューには、これは私の問題である[cell.contentView addSubview: footerView]

を使用してindexPath.section = 3ためのビューとなっています。しかし、ボタンをタップすることはできません。セルの中にあるボタンの代わりにセルが選択されるためです。

この問題を解決するにはどうすればよいですか? マイボタンは選択できません。

ここでコードがcellForRowAtIndexPath:

if (section == 3){ 

    cell = nil; 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 

    if (indexPath.row ==0){ 

     cell.contentMode = UIViewContentModeScaleToFill; 
     [cell.contentView addSubview:self.footerView]; 

    } 

} 

とフッタービュー(ケースには誰もがこれを参照する必要があります)で...です:あなたはのようなものを実装する必要があります

UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 3, 300, 44)]; 
textView.text = @"Terms and Conditions: Lorem ipsum dolor sit amet, con- sectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut"; 

textView.backgroundColor = [UIColor clearColor]; 
textView.font = [UIFont systemFontOfSize:10]; 

[self.footerView addSubview:textView]; 

//create the button 
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 

[button setFrame:CGRectMake(0, 60, 300, 44)]; 

//set title, font size and font color 
[button setTitle:@"Create Account" forState:UIControlStateNormal]; 
[button.titleLabel setFont:[UIFont boldSystemFontOfSize:18]]; 
// [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 

//set action of the button 
[button addTarget:self action:@selector(createAccount:) 
forControlEvents:UIControlEventTouchUpInside]; 

[button setEnabled:YES]; 
//add the button to the view 
[self.footerView addSubview:button]; 


UIButton *cancelButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 

[cancelButton setFrame:CGRectMake(0, 107, 300, 44)]; 

//set title, font size and font color 
[cancelButton setTitle:@"Cancel" forState:UIControlStateNormal]; 
[cancelButton.titleLabel setFont:[UIFont boldSystemFontOfSize:18]]; 
// [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 

//set action of the button 
[cancelButton addTarget:self action:@selector(cancelPressed:) 
     forControlEvents:UIControlEventTouchUpInside]; 


[cancelButton setEnabled:YES]; 
//add the button to the view 
[self.footerView addSubview:cancelButton]; 

答えて

6

この

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (3 == indexPath.section){ 
     return nil; 
    } 
    return indexPath; 
} 

上記はうまく動作します。 UIButtonフレームをセルのcontentViewの外側にすることで、問題を再現できると思います。セルがラベルを入れるのに十分な大きさであることを確認し、正しく機能するはずです。セルをコンテンツに合わせて大きくするには、実装する必要があります。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return aHeightThatIsBigEnoughToContainMySubViews; 
} 
+0

TRIED >>>は動作しません。 – Legolas

+1

+1 2番目のビットは問題を解決するはずです。 –

+0

@paul:私は既に身長の問題を世話しました。そのセクションの私のサブビューよりも大きい。問題は未解決のままです。 – Legolas

関連する問題