0

このコードでUITableViewCellUIActivityIndicatorViewを追加しました。UITableViewCellでUIActivityIndi​​catorViewを配置する方法

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の2つの最初のパラメータを変更しようとしましたが、何も変更されませんでした。

答えて

3

spinnerのフレームに実際に何もせずに、resizedSpacerをimageViewとして追加しました。あなたは何かが欲しい:

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を含むロジックが必要とは思わない。実際には、UIImageViewにはUIActivityIndicatorViewをホストしたくないかもしれません。なぜそれを直接tableviewセル内に配置しないのですか?