Xcode 4.3/iOS 5.1/故事板。
我在情节提要中有一个带有 UITableView 的 UIViewController
初始化该视图时
-(void) loadView {
UITableView *tTableView = [[UITableView alloc] initWithFrame:CGRectMake(20,60, 300, 300)
style:UITableViewStyleGrouped];
[tTableView setDelegate:self];
[tTableView setDataSource:self];
[tTableView setBackgroundView:[[UIView alloc] initWithFrame:self.tableView.bounds]];
self.tableView = tTableView;
self.view = tTableView; // <--- THIS WORKS
}
这可行,但 TableView 会在屏幕的整个宽度上拉伸。我希望它具有一定的大小,因为我将它用于登录用户名/密码控制。
我被告知将其添加为子视图,但这会使我的应用程序崩溃,因为某种递归调用到相同的“loadView”方法中。
-(void) loadView {
UITableView *tTableView = [[UITableView alloc] initWithFrame:CGRectMake(20,60, 300, 300)
style:UITableViewStyleGrouped];
[tTableView setDelegate:self];
[tTableView setDataSource:self];
[tTableView setBackgroundView:[[UIView alloc] initWithFrame:self.tableView.bounds]];
self.tableView = tTableView;
[self.view. addSubview: tTableView]; // <-- THIS CRASHES
}
为什么会崩溃?如何将 UITableView 添加到可以控制其宽度而不是占据整个屏幕宽度的子视图中?