Я подклассифицировал UITableViewCell
для отображения чисел от 1 до 70. В каждой ячейке я проверяю выигрышные номера и шанс их фона. Проблема в том, что после нескольких прокруток табличный вид становится очень медленным, чтобы его нельзя было использовать. Я не понимаю, почему, поскольку, насколько я понимаю, я повторно использую ячейки. Может быть, это потому, что я каждый раз создаю 70 UITextFields?cellForRowAtIndexPath медленно поворачивается после нескольких прокруток
Пожалуйста посоветуйте
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
...
...
...
SubCell *cell = [tableView dequeueReusableCellWithIdentifier:@"myCell"];
if (cell == nil) {
cell = [[SubCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"myCell"];
}
for(int i=0;i<7;i++)
{
for(int j=0;j<10;j++)
{
UITextField *tempField = [[UITextField alloc]initWithFrame:CGRectMake(2+(j*31), 4+(i*28), 30, 27)];
[tempField setBorderStyle:UITextBorderStyleNone];
[tempField setOpaque:YES];
[tempField setTextAlignment:NSTextAlignmentCenter];
[tempField setTextColor:[UIColor whiteColor]];
[tempField setUserInteractionEnabled:NO];
tempField.text = [NSString stringWithFormat:@"%d",i*10+j+1];
if([[cell.currentWinningArray objectAtIndex:i*10+j] isEqualToString:@"0"])
{
[tempField setBackground:[UIImage imageNamed:@"blue"]];
}
else
[tempField setBackground:[UIImage imageNamed:@"orange"]];
[cell.contentView addSubview:tempField];
}
}
return cell;
}
делает много смысла. Благодарю. Не могли бы вы рассказать мне, в чем причина того, что моя клетка никогда не ноль? Он никогда не войдет первым, если. – Segev
@Sha Это [вероятно, потому, что вы используете раскадровку и дали свой 'UITableViewCell' идентификатор' 'myCell''] (http://stackoverflow.com/a/11788323/335858). – dasblinkenlight
После некоторого чтения я узнал, что, поскольку я использую ячейки прототипа, я не могу использовать все 'cell == nil'. Короткий ответ, который объясняет это: http://stackoverflow.com/a/9461518/1578927. Отличный ответ и приводит @dasblinkenlight. Благодаря! – Segev