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上的兩個第一個參數,但這並沒有改變任何東西。

回答

3

您已經將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的邏輯是必需的。實際上,你甚至可能根本不想在UIImageView中主持UIActivityIndicatorView;爲什麼不直接將其放置在tableview單元格內?

相關問題