UIButton в TableViewCell не отвечает - PullRequest
0 голосов
/ 28 марта 2011
if ([cell.textLabel.text isEqualToString:@"Button"])
{
    UIView *ButtonView = [[UIView alloc] initWithFrame:CGRectMake(100, 5, 100, 25)];
    UIButton *Button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    Button.frame = CGRectMake(90, 5, 90, 30);
    [Button setTitle:@"PopOver" forState:UIControlStateNormal];
    [ButtonView addSubview:Button];
    [cell.contentView addSubview:ButtonView];
    [Button addTarget:self action:@selector(showPickerPopupAction)forControlEvents:UIControlEventTouchUpInside]; 
    Button.tag = indexPath.row; 
}

- (void) showPickerPopupAction { NSLog (@ "Кнопка нажата."); }

Ответы [ 2 ]

0 голосов
/ 29 марта 2011
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault     reuseIdentifier:@"ButtonCell"] autorelease];

UIView *backgroundView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 44.0f)];
backgroundView.backgroundColor = [UIColor groupTableViewBackgroundColor];

cell.backgroundView = backgroundView;

UIButton *buttonLeft = [UIButton buttonWithType:UIButtonTypeRoundedRect];
 [buttonLeft setTitle:@"Left" forState:UIControlStateNormal];
 [buttonLeft setFrame: CGRectMake( 10.0f, 3.0f, 145.0f, 40.0f)];
 [buttonLeft addTarget:self action:@selector(addToFavorites) forControlEvents:UIControlEventTouchUpInside];

 UIButton *buttonRight = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[buttonRight setTitle:@"Right" forState:UIControlStateNormal];
[buttonRight setFrame: CGRectMake( 165.0f, 3.0f, 145.0f, 40.0f)];
[buttonRight addTarget:self action:@selector(addToFavorites) forControlEvents:UIControlEventTouchUpInside];

[cell addSubview:buttonLeft];
[cell addSubview:buttonRight];

[backgroundView release];

-(void) addToFavorites {}

Works fine !!
0 голосов
/ 28 марта 2011

Рамка Button почти полностью находится вне рамки ButtonView. Если вы установите backgroundColor для ButtonView, вы увидите, что только левый верхний угол кнопки находится в рамке ButtonView, и только этот угол будет реагировать на прикосновения.

Настройте размер рамки ButtonView или размер и положение рамки Button таким образом, чтобы кнопка полностью находилась внутри ButtonView.

Не уверен, зачем вам вообще нужен ButtonView. Вы можете просто добавить Button непосредственно в contentView.

Кроме того, вы должны сделать [ButtonView release] после добавления ButtonView в cell.contentView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...