0

У меня есть этот код для добавления UIActivityIndicatorView в UITableViewCell.Как разместить 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, но это ничего не изменило.

ответ

3

Вы добавили resizedSpacer как изображениеПросмотрите, не сделав ничего, чтобы сделать 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; почему бы не позиционировать его непосредственно в ячейке tableview?

Смежные вопросы