UITableViewCell detailTextLabel区域不允许选择单元格

时间:2013-08-23 07:03:59

标签: ios objective-c uitableview

UITableViewCell内,detailTextLabel所涵盖的区域无法识别cell的选择。

单元格样式为UITableViewCellStyleSubtitle

单元格的整个底部区域无法选择,用户有时会多次点击cell,然后再点击单元格以检测触摸。

我已尝试[[myCell detailTextLabel] setUserInteractionEnabled:NO]或设置背景颜色以清除哪些在类似情况下有所帮助,我还能做些什么?

我考虑过添加UILabel作为subview的单元格,而不是detailTextLabel,如果我在这里找不到答案,我会尝试。

编辑 - 按要求

以下是cellForRowAtIndexPath

的代码
    NSString *cellId = @"cell";

    locationsCell = [tableView dequeueReusableCellWithIdentifier:cellId];
    if(locationsCell == nil) {
        locationsCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellId];
    }
    [[locationsCell textLabel] setFont:[UIFont fontWithName:@"Optima-Bold" size:18]];
    [[locationsCell textLabel] setText:@"Choose your location"];
    [[locationsCell detailTextLabel] setFont:[UIFont fontWithName:@"Optima" size:14]];
    [[locationsCell detailTextLabel] setText:@"Tap to select"];
    [[locationsCell detailTextLabel] setBackgroundColor:[UIColor clearColor]];
    return locationsCell;

EDIT 对不起,我搞砸了。我为另一个表设置了页脚视图,它添加了一个清晰的页脚视图,使得单元格不可选,而不是为两个表添加条件。我删除了页脚并且它正在工作。

1 个答案:

答案 0 :(得分:0)

朋友我尝试了自己所说的,但对我来说这是有效的。 我试过像这样的简单代码,

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *TableIdentifier = @"cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:TableIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:TableIdentifier];
    }
    cell.textLabel.text = [array objectAtIndex:indexPath.row];

    cell.detailTextLabel.text=[NSString stringWithFormat:@"subtitle area text working %@ %d",[array objectAtIndex:indexPath.row],indexPath.row];


    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"indexpath row %d",indexPath.row);
    UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"working" message:@"yes" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
    [alert show];
}