2013-08-23 3 views
0

Внутри UITableViewCell площадь, покрытая detailTextLabel, не признает выбор cell.UITableViewCell detailTextLabel не разрешает выбор ячейки

Стиль ячейки UITableViewCellStyleSubtitle

Вся площадь дна ячейки не выбирается, а пользователи иногда постукивая cell несколько раз, прежде чем нажать достаточно высоко на клетке для того, чтобы обнаружить на ощупь.

Я попробовал [[myCell detailTextLabel] setUserInteractionEnabled:NO] или установил цвет фона для очистки, что помогло в подобных случаях, что еще я могу сделать?

Я думал о добавлении UILabel как subview клетки вместо detailTextLabel которые я буду стараться, если я не могу найти ответ здесь.

EDIT - по запросу

Вот код из 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 Извините, я перепутались. Я установил нижний колонтитул для другой таблицы, и он добавил четкое представление нижнего колонтитула, из-за которого ячейка была не выбрана, вместо добавления условного выражения для двух таблиц. Я удалил нижний колонтитул, и он работает.

+2

может у показать мне cellAtRowIndexpath код метода –

+0

почему вы устанавливаете '[[myCell detailTextLabel] setUserInteractionEnabled: NO]' это должно быть ДА – preetam

+0

@preetam это был только один из многие вещи, которые я пробовал, я также пробовал это с помощью YES – PaulMrG

ответ

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]; 
} 
Смежные вопросы