Не могу выбрать ячейку, но я могу установить textLabel - PullRequest
0 голосов
/ 18 ноября 2010

Я просто хочу выбрать свою первую ячейку моего первого раздела, это что-то простое, но оно не хочет работать ...

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

    // Dequeue or create a cell of the appropriate type.
    UITableViewCell *cell;
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    cell.accessoryType = UITableViewCellAccessoryNone;
    cell.textLabel.font = [UIFont boldSystemFontOfSize:17];
    cell.selectionStyle = UITableViewCellSelectionStyleBlue;


    switch (indexPath.section) {
        case 0:
        {
            NSString *cellIconName = [[self subViewIconNames] objectAtIndex:[indexPath row]];   
            UIImage *cellIcon = [UIImage imageNamed:cellIconName];
            [[cell imageView] setImage:cellIcon];
            cell.imageView.alpha = 0.5;
            cell.textLabel.textColor = [UIColor grayColor];
            cell.textLabel.text = [self.subViewNames objectAtIndex:indexPath.row];


            if ([MyAppDelegate sharedAppDelegate].inSubView) {
                    cell.userInteractionEnabled = NO;
                if (indexPath.row == 0) {
                    firstIndexPath  =indexPath;
                    cell.selected = YES;
                    cell.textLabel.text = @"yes this changes";
                }
            }



            break;
        }
...

Таким образом, текстовая метка меняется на "да, это меняется", но выбирается нет ...

Я пробовал разные подходы, также это после перезагрузки:

NSIndexPath *ip=[NSIndexPath indexPathForRow:0 inSection:0];
        [[MyAppDelegate sharedAppDelegate].rootViewController.tableView  selectRowAtIndexPath:ip animated:YES scrollPosition:UITableViewScrollPositionBottom];

Я не знаю, где искать ... пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 18 ноября 2010

Попробуйте что-то вроде этого:

- (void) tableView:(UITableView *)tableView selectAndScrollToIndexPath:(NSIndexPath *)newSelectionIndexPath {

    [tableView selectRowAtIndexPath:newSelectionIndexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
    [[tableView cellForRowAtIndexPath:newSelectionIndexPath] setSelected:YES animated:NO];

    [tableView scrollToRowAtIndexPath:newSelectionIndexPath atScrollPosition:UITableViewScrollPositionMiddle animated:NO];
}
0 голосов
/ 18 ноября 2010

Я не уверен, что понимаю, что вы пытаетесь сделать, но, возможно, вам следует попробовать использовать выделенное в дополнение к выбранному:

cell.selected = YES;
cell.highlighted = YES;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...