내 UITableViewCell에있는 버튼에 문제가 있습니다. 스토리 보드를 사용하고 IB를 통해 내 버튼을 연결했습니다. 내 cellforRowatIndexPath 내에서 내 버튼에 동작을 추가 :테이블보기 내의 UIButton 셀 문제
cell.likeBtnPressed.tag = indexPath.row;
[cell.likeBtnPressed addTarget:self action:@selector(userDidTapOnLikeButton:photo:) forControlEvents:UIControlEventTouchUpInside];
당신은 버튼을 누를 때 호출되는 것을 볼 수 아래 :
:-(void)userDidTapOnLikeButton:(UIButton *)button photo:(PFObject *)photo{
//Disable the button so users cannot send duplicat requests
[button setEnabled:NO];
[button setTintColor:[UIColor redColor]];
//Set the new state of the button
BOOL liked = !button.selected;
[button setEnabled:liked];
//Get the current number of likes the post have
NSString *originalButtonTitle = button.titleLabel.text;
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
//Update the like count in the ECDCache
NSNumber *likeCount = [numberFormatter numberFromString:button.titleLabel.text];
if (liked) {
likeCount = [NSNumber numberWithInt:[likeCount intValue] + 1];
[[ECDCache sharedCache] incrementLikerCountForPhoto:photo];
}else{
if ([likeCount intValue] > 0) {
likeCount = [NSNumber numberWithInt:[likeCount intValue] - 1];
}
[[ECDCache sharedCache] decrementLikerCountForPhoto:photo];
}
//Add the current user as a liker of the photo in ECDCache
[[ECDCache sharedCache] setPhotoIsLikedByCurrentUser:photo liked:liked];
//Update the button label
[button setTitle:[numberFormatter stringFromNumber:likeCount] forState:UIControlStateNormal];
//Call the appropriate static method to handle creating/deleting the right object
if (liked) {
[ECDUtility likePhotoInBackground:photo block:^(BOOL succeeded, NSError *error) {
[button setEnabled:YES];
[button setTitleEdgeInsets:UIEdgeInsetsMake(-1.0f, 0.0f, 0.0f, 0.0f)];
[[button titleLabel] setShadowOffset:CGSizeMake(0.0f, -1.0f)];
if (!succeeded) {
// Revert the button title (the number) if the call fails
[button setTitle:originalButtonTitle forState:UIControlStateNormal];
}
}];
}
}
I 버튼을 누르면 지금까지 내가 이것을받을 때
-[UITouchesEvent objectId]: unrecognized selector sent to instance 0x15ee5de0
난 당신이 더 t으로 대상을 추가 할 수 없습니다 내가 잘못
좋아 I입니다 이것을 시도 할 것이다. 내 userDidtap .. 메서드 내에서 단추 인덱스 경로를 검색 할 수있는 방법이 있나요? –
'button'을 가져 와서'superview' (그리고 아마도 superview의 수퍼 뷰)를 보면서'UITableViewCell'을 얻습니다. 그렇다면 단지 [- UITableView indexPathForCell :]'이 필요합니다. –
이론적으로,'- [UITableView indexPathForRowAtPoint :]'와 함께'@selector (a : b :)'옵션에서'UIEvent' 매개 변수를 사용하여 인덱스 경로를 얻을 수 있습니다. '[tableView indexPathForRowAtPoint : [event.allTouches.anyObject locationInView : tableView]]' –