Как разместить UIActivityIndicatorView в UITableViewCell - PullRequest
0 голосов
/ 14 декабря 2011

У меня есть этот код для добавления UIActivityIndicatorView к UITableViewCell.

    UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
    UIImage *spacer = [UIImage imageNamed:@"spacer"];
    UIGraphicsBeginImageContext(CGSizeMake(220, 150));
    [spacer drawInRect:CGRectMake(0,0,spinner.frame.size.width,spinner.frame.size.height)];
    UIImage* resizedSpacer = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    cell.imageView.image = resizedSpacer;
    [cell.imageView addSubview:spinner];
    [spinner startAnimating];

В настоящее время изображение показано в левом верхнем углу поля 220x150.Вместо этого я хотел бы поместить это в центр.Как я могу это сделать?Я попытался изменить два первых параметра на CGRectMake, но это ничего не изменило.

1 Ответ

3 голосов
/ 14 декабря 2011

Вы добавили resizedSpacer в качестве imageView, фактически ничего не делая для кадра spinner. Вы хотите что-то вроде:

CGSize spinSize = spinner.frame.size;
spinner.frame = CGRectMake((220-spinSize.width)/2., (150-spinSize.height)/2.,spinSize.width, spinSize.height);
[cell.imageView addSubview:spinner];

Я не думаю, что логика с spacer обязательна. На самом деле, вы можете даже не захотеть размещать UIActivityIndicatorView в UIImageView вообще; почему бы не разместить его непосредственно в ячейке таблицы?

...