gpt4 book ai didi

ios - 在子类方法中将 tableView 样式从 UITableViewStylePlain 更改为 UITableViewStyleGrouped

转载 作者:行者123 更新时间:2023-11-29 03:12:57 26 4
gpt4 key购买 nike

我有一个 ViewControllerA 包含一个具有 UITableViewStylePlain 样式的 tableView,如下所示:

- (void)loadView{
[super loadView];

self.tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
[self.view addSubview:self.tableView];
}

现在,我有一个ViewControllerSubAViewControllerA的子类,大部分逻辑与ViewControllerA相同,但tableView的样式应该是UITableViewStyleGrouped。我要做的就是使用 UITableViewStyleGrouped 样式创建一个新的 tableView,代码如下:

- (void)loadView
{
[super loadView];
[self.tableView removeFromSuperview];
self.tableView = nil;

self.tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleGrouped];
[self.view addSubview:self.tableView];
}

还有更好的解决办法吗?我认为删除旧的表格 View 然后创建一个新的表格 View 似乎不太好。

最佳答案

你可以使用多态!

将基类中的代码更改为

- (void)loadView
{
[super loadView];
//..... additional code here
self.tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:[self getTableStyle]];
[self.view addSubview:self.tableView];
}

- (UITableViewStyle)getTableStyle
{
return UITableViewStylePlain;
}

并且在您的 Child 类中您应该添加

- (UITableViewStyle)getTableStyle
{
return UITableViewStyleGrouped;
}

它被称为“工厂方法”。

关于ios - 在子类方法中将 tableView 样式从 UITableViewStylePlain 更改为 UITableViewStyleGrouped,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22008035/

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