我已将此代码用于将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
上的两个第一个参数,但这并没有改变任何内容。
答案 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单元格中?