检测自定义单元格中的按钮并更改属性

时间:2013-05-19 16:05:41

标签: xcode uitableview

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

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发送者,或者更确切地说,我不想使用它。

代码似乎正确

谢谢你!

1 个答案:

答案 0 :(得分:0)

通常,当任何UI对象向您的控制器发送操作时,该方法将通过sender,您是否可以使用它?

e.g。上面代码所在方法的定义可能类似于:

-(void)buttonPressed:(id)sender;

其中sender应该是按钮。 虽然我怀疑我们错过了一些其他重要信息,因为你正在使用NSNotifications ......