如何在UITableViewCell中定位UIActivityIndi​​catorView

时间:2011-12-14 17:01:35

标签: objective-c cocoa-touch uitableview uiactivityindicatorview

我已将此代码用于将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 个答案:

答案 0 :(得分: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的逻辑。实际上,您甚至可能根本不想在UIActivityIndicatorView中托管UIImageView;为什么不将它直接放在tableview单元格中?