0

我有一个表格,其中有一个自定义单元格的按钮。当我按下此按钮时,它会调用一个使用以下代码检测按钮的方法:

NSIndexPath *indexPath = [NSIndexPath indexPathForRow: [[[notification userInfo] valueForKey:@"row"] intValue] inSection: 0];
PlaceRoomCustomCell *cell = (PlaceRoomCustomCell*)[self tableView:self.tableView cellForRowAtIndexPath:indexPath];
for (UIView *view in  cell.contentView.subviews){
    if (view.tag == 1) {
        for (UIView *subview in  view.subviews){
            if ([subview isKindOfClass:[UIButton class]]){
                  [(UIButton *)subview setImage:[UIImage imageNamed:@"placeRoomTableCellLikeButtonRedIcon.png"] forState:UIControlStateNormal];
                  [(UIButton *)subview setImage:[UIImage imageNamed:@"placeRoomTableCellLikeButtonRedIcon.png"] forState:UIControlStateHighlighted];
                  [(UIButton *)subview setImage:[UIImage imageNamed:@"placeRoomTableCellLikeButtonRedIcon.png"] forState:UIControlStateDisabled];

                  NSLog(@"tag %i",subview.tag); //correct
             }
         }
      }
}

标签是正确的,但图像没有改变。

我不能直接使用按钮的 id sender,或者更确切地说,我不想使用它。

代码似乎正确

谢谢你!

4

1 回答 1

0

通常,当任何 UI 对象向您的控制器发送操作时,该方法都会传递给sender,您可以不使用它吗?

例如,上面代码所在的方法的定义可能类似于:

-(void)buttonPressed:(id)sender;

sender按钮应该在哪里。虽然我有一个偷偷摸摸的怀疑我们在问题中遗漏了一些其他重要信息,因为你正在使用 NSNotifications ......

于 2013-05-19T16:21:27.227 回答