2009-07-13 7 views
3

イベントに応答していません。問題は、ボタンイベントが呼び出されないということです。また、UIControlStateHighlightedを基準にしたイメージは表示されません。何か案は? 私は考えることができるすべてを試みましたが、私はそのトリックを見つけることができません。あなたの助けのためのUIButtonsは私が成功したカスタムtableFooterViewにいくつかのUIButtonsを追加しました

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection: (NSInteger)section 
{ 
    CGRect footerFrame = CGRectMake(0.0, 0.0, 480, 190); 
    _footerView = [[UIImageView alloc] initWithFrame: footerFrame]; 
    _footerView.image = [UIImage imageNamed:@"tableviewfooter.png"]; 
    _footerView.contentMode = UIViewContentModeTopLeft; 

    UIButton *addExam = [self createButtonWithFrame: CGRectMake(10, 30, 460, 58) Target: self Selector: @selector(addNewItem:) Image: @"additem.png" ImagePressed: @"additem_pressed.png"]; 
    [_footerView addSubview:addExam]; 

    return _footerView; 
} 

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection: (NSInteger) section 
{ 
    return 190; 
} 


- (void) addNewItem:(id)sender 
{ 
    // This get's never called 
    NSLog(@"Pressed"); 
} 


- (UIButton*) createButtonWithFrame: (CGRect) frame Target:(id)target Selector:(SEL)selector Image:(NSString *)image ImagePressed:(NSString *)imagePressed 
{ 
    UIButton *button = [[UIButton alloc] initWithFrame:frame]; 

    UIImage *newImage = [UIImage imageNamed: image]; 
    [button setBackgroundImage:newImage forState:UIControlStateNormal]; 

    UIImage *newPressedImage = [UIImage imageNamed: imagePressed]; 
    [button setBackgroundImage:newPressedImage forState:UIControlStateHighlighted]; 

    [button addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside]; 

    return button; 
} 

ありがとう:私はここのUITableViewControllerの興味深い部分を報告しています!

答えて

6

私はUIImageViewが他のビューのための容器、特にUIButtonsとしてうまく動作するように設計されていたとは思いません。 1つの場合、UIImageViewが作成されると、userInteractionsEnabledプロパティがデフォルトでfalseに設定されます。

UIViewをフッタービューとして作成し、UIButtonUIImageViewの両方を直接追加します。

+0

それが原因でした。私は今日何かを学んだ:) –

関連する問題