我有一个常规的 UITableViewController
和一个 UITableView
作为它的唯一 View ,除了表格 View 之外我还想有一个 UIActivittyIndicatorView
.
所以我需要这样的 View 结构:
view (UIView):
tableView
activityIndicatorView
在没有 InterfaceBuilder 的情况下,最简洁的方法是什么?我想我需要覆盖 loadView:
方法,但到目前为止我还没有成功。
最佳答案
ARC 和 iOS 5.0+ 的更新(我认为旧版本需要删除,因为我们有新的、更好的 API:)):
添加到 UIViewController
子类的头文件 .h 中:
@property (nonatomic, weak) UIActivityIndicator *activityIndicator;
并覆盖 UIViewController
子类的 .m 文件中的方法:
- (void)loadView {
[super loadView];
UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
// If you need custom color, use color property
// activityIndicator.color = yourDesirableColor;
[self.view addSubview:activityIndicator];
[activityIndicator startAnimating];
self.activityIndicator = activityIndicator;
}
- (void)viewWillLayoutSubviews {
[super viewWillLayoutSubviews];
CGSize viewBounds = self.view.bounds;
self.activityIndicator.center = CGPointMake(CGRectGetMidX(viewBounds), CGRectGetMidY(viewBounds));
}
============================================= ==============
非 ARC 版本,iOS < 5.0:
你应该覆盖方法
-(void)loadView {
[super loadView];
self.activityIndicator = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray] autorelease];
[self.view addSubview:self.activityIndicator];
self.activityIndicator.center = CGPointMake(self.view.frame.size.width / 2, self.view.frame.size.height / 2);
[self.activityIndicator startAnimating];
}
此外,添加
@property (nonatomic, assign) UIActivityIndicatorView *activityIndicator;
在头文件中
和
@synthesize activityIndicator;
到.m文件
关于iphone - 以编程方式为 UITableViewController 设置 UIActivityIndicatorView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9841833/