我有一个问题,我在UITableView中使用自定义单元格,当我在tableview上点击一个以上的手指(两根或更多手指)时,每个单元格上的某些labels出现了很多问题(以显示信息)丢失的文字(它是空的)。因此,我尝试禁用对我的桌子的多点触控,但这并不影响。我尝试将tableView.allowsMultipleSelection = NO;tableView.multipleTouchEnabled = NO;添加到cellForRowAtIndexPath or didSelectRowAtIndexPath。但是没有任何作用。请帮助我找出解决方案。

谢谢!
这是我的代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    int row = indexPath.row;

@synchronized (self) {
    if (row == [voicemailItems count]) {
        // User selected the blank rows
        [tableView deselectRowAtIndexPath:indexPath animated:YES];

        // Blank out the play button on previous selected row
        [self deselect];

        return;
    }
}

if (selectedRowIndexPath != nil) {
    if (row == selectedRowIndexPath.row) {
        // Selecting the same row twice will play the voicemail
        if (streaming == NO) {
            if (calling == NO) {
                // Play the voicemail
                [NSTimer scheduledTimerWithTimeInterval:0.1f target:self selector:@selector(playVoicemailAction:) userInfo:indexPath repeats:NO];
            }

            return;
        }
        else {
            // Streaming VM
            if ([self isCallInProgress] == YES) {
                [ScreenUtils errorAllert:@"Cannot play voicemail while call is in progress." type:kUINotice delegate:self];
            }
            else {
                if (![self isVoicemailNotification:selectedRowIndexPath.row]) {
                    // Stream the voicemail
                    [NSTimer scheduledTimerWithTimeInterval:0.1f target:self selector:@selector(playVoicemailAction:) userInfo:indexPath repeats:NO];
                }
            }
        }
    }
    else {
        // Selecting a different row
        [self shutdownPlayer];
        [self cancel];

        // Blank out the play button on previous selected row
        [self deselect];
    }
}

selectedRowIndexPath = indexPath;

// Enable Call Back button
// Don't enable if private, etc.
btnCallBack.enabled = ([self canCallBack:row] &&
                       !calling &&
                       ([self isCallInProgress] == NO) &&
                       ![self isVoicemailNotification:selectedRowIndexPath.row]);

// Enable and Delete button
btnDelete.enabled = YES;

// Select the cell
VoicemailCell * cell = (VoicemailCell*)[tblView cellForRowAtIndexPath:indexPath];
[cell select:YES playing:[self isPlaying] stream:streaming];
[tblView setNeedsDisplay];

//[tableView deselectRowAtIndexPath:indexPath animated:YES];
}

最佳答案

试试这个,对我有帮助!

cell.contentView.exclusiveTouch = YES;
cell.exclusiveTouch = YES;

关于iphone - 无法在Uitableview(iOS 7)上禁用多点触控,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18825733/

10-11 17:11