Пользовательская UITableViewCell быстрая прокрутка - PullRequest
1 голос
/ 23 августа 2010

У меня есть UITableView, показывающий пользовательские ячейки вида, которые я разработал в конструкторе интерфейсов. Он имеет довольно много кнопок и надписей и градиентный фон, что делает производительность прокрутки неаккуратной, он «отстает» каждый раз при загрузке новой ячейки. Я прочитал руководство от парня, который создал Tweetie о быстрой прокрутке, и там сказано, что лучше рисовать все вручную.

Есть ли другой способ сделать это? Я хочу использовать мой файл .xib, так как рисовать все эти компоненты вручную довольно утомительно.

Вот как реализован метод cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"ThreadsViewCell";

    ThreadViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil){       
        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"ThreadViewCell" owner:nil options:nil];

        for(id currentObject in topLevelObjects)
        {
            if([currentObject isKindOfClass:[ThreadViewCell class]])
            {
                cell = (ThreadViewCell *)currentObject;
                break;
            }
        }
    }

1 Ответ

5 голосов
/ 23 августа 2010

Сложные иерархии представлений и альфа-смешение всегда убивают производительность прокрутки.

Вам нужно либо сгладить / упростить иерархию представлений, либо начать работать над своими навыками CoreGraphics.Заинтересовавшись, сколько у вас смешивания, запустите (на устройстве) режим «Core Animation» в инструментах и ​​установите флажок «Color Blended Layers».Вы хотите видеть как можно больше зеленого, чем темнее красный, тем хуже ваше смешение.

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