gpt4 book ai didi

ios - 无法将 UITableView 添加为 subview

转载 作者:行者123 更新时间:2023-12-01 19:20:36 24 4
gpt4 key购买 nike

Xcode 4.3/iOS 5.1/ Storyboard。

我在 Storyboard 中有一个带有 UITableView 的 UIViewController

初始化该 View 时

    -(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 会在屏幕的整个宽度上拉伸(stretch)。我希望它具有一定的大小,因为我将它用于登录用户名/密码控制。

我被告知将其添加为 subview ,但这会使我的应用程序崩溃,因为某种递归调用到相同的“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 添加到可以控制其宽度而不是占据整个屏幕宽度的 subview 中?

最佳答案

您需要 self.view = tTableViewself.view = [UIView alloc] initWithFrame....然后添加表格 View 。覆盖 loadView方法意味着您将创建 self.view .因此,对于您的情况,创建一个 UIView ,将其设置为 self.view,然后将您的 tableView 添加为 self.view 的 subview

关于ios - 无法将 UITableView 添加为 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10493587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com