1

Selection = Noneその静止画の絵コンテシーンから選んでいますUITableViewCell。このメソッドも追加しました:

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    switch (indexPath.row) {
        case 1:
            return nil;
            break;
    }
}

メソッドが値を返さないことを警告するため、これは特に適切に設定されていません。

セルはまだ選択可能で、1 回、短時間、その後は選択できません。セルは次のように設定されます。

case 1:
    cell.textLabel.text = @"Search";
    break;

などdidSelectRowAtIndexPathなど:

case 1:
    NSLog(@"Unselectable Cell");
    break;

他に何か不足していますか?

4

4 に答える 4

4

cell.userInteractionEnabled = NO;

于 2013-07-16T02:35:52.333 に答える
2

選択は強調表示された直後の状態で、セルを押して青色になれば強調表示され、離すと選択されています。

したがって、セルを強調表示できない場合は選択できません。それを念頭に置いて、次のことができます。

- (BOOL)tableView:(UITableView *)tableView shouldHighlightRowAtIndexPath:(NSIndexPath *)indexPath
{
    // I'm assuming you just want it for the row 1, right?
    if (indexPath.row == 1)
    {
        // You ain't getting selected today, son.
        return NO;
    }

    return YES;
}
于 2013-07-16T02:42:40.613 に答える
1

私がしていることは、次のようなことです。

- (UITableViewCell *)tableView:(UITableView *)tmpTableView cellForRowAtIndexPath:   (NSIndexPath *)indexPath
{
tmpTableView.scrollEnabled = NO;
static NSString *CellIdentifier = @"MainCell";
UITableViewCell *cell = [tmpTableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (nil == cell)
{
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    if(indexPath.row == 0)
    {
        cell.textLabel.textAlignment = NSTextAlignmentCenter;
        cell.userInteractionEnabled = NO;
        cell.textLabel.lineBreakMode = NSLineBreakByWordWrapping;
        cell.textLabel.numberOfLines = 4;
        cell.textLabel.textColor = [UIColor grayColor];
        cell.textLabel.font = [UIFont systemFontOfSize:16.0];
        cell.textLabel.text = [self.answerArray objectAtIndex:indexPath.row];
        [cell.textLabel setAdjustsFontSizeToFitWidth:YES];
        return cell;
    }
}
cell.textLabel.font = [UIFont systemFontOfSize:18.0];
cell.textLabel.text = [self.answerArray objectAtIndex:indexPath.row];

return cell;
}

もちろん、これはセルの数が動的に変化しないテーブルでのみ機能します。

于 2013-07-16T03:11:15.640 に答える