我怎样才能设置一个UITableView分组的风格
我有一个UITableViewController
子类的部分。 部分显示为默认样式(不带圆angular)。 我怎样才能设置TableView风格分组的代码? 我没有使用Interface Builder,所以我需要类似的东西
[self.tableView setGroupedStyle]
我search堆栈溢出,但不能拿出一个答案。
如果我明白你的意思,你必须用这种风格初始化你的控制器。 就像是:
myTVContoller = [[UITableViewController alloc] initWithStyle:UITableViewStyleGrouped];
您可以执行以下操作:
UITableView *myTable = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
Swift 3:
let tableView = UITableView.init(frame: CGRect.zero, style: .grouped)
我给你我的解决scheme,我在“XIB模式”,在这里的UITableViewController的子类的代码:
-(id)initWithCoder:(NSCoder *)aDecoder { self = [super initWithStyle:UITableViewStyleGrouped]; return self; }
下面的代码为我工作,我也使用UITableview类
- (id)initWithStyle:(UITableViewStyle)style { self = [super initWithStyle:UITableViewStyleGrouped]; if (self) { } return self; }
对于ui本身设置分组风格: – selectTableView,然后将“样式”(在属性检查器))从普通更改为分组。
你也可以这样做,如果你想使用它已经在一个单独的SWIFT文件中创build的子类(可能不是100%正确,但工程)
override init(style: UITableViewStyle) { super.init(style: style) UITableViewStyle.Grouped } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") }
现在在你appdelegate.swift你可以打电话给:
let settingsController = SettingsViewController(style: .Grouped)
如果你inheritance了UITableViewController,你可以再次启动tableView。
目标C:
self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
Swift 4:
self.tableView = UITableView(frame: CGRect.zero, style: .grouped)
Swift 2.1:
let myTableViewController = UITableViewController(style: UITableViewStyle.Grouped)
如果您有一个TableView用于更多的表格,并且其中一个表格是分组的,另一个表格是纯的,则可以使用UITableViewDelegate中的函数来模拟普通样式:
override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { return CGFloat.min }
你也可以使用storyboard / XIB来做到这一点
- 转到故事板 – >select你的viewController – >select你的表
- 在界面构build器中select“样式”属性
- select“分组”
- 完成
设置这个问题并不难。 其实这很简单 试试这个故事板。
斯威夫特4
使用普通的TableView
let tableView = TableView(frame: .zero, style: .grouped)
使用TPKeyboardAvoidingTableView
let tableView = TPKeyboardAvoidingTableView(frame: .zero, style: .grouped)
您也可以尝试使分隔线颜色清晰,这可以给出分组样式效果:
[myTVContoller.tableView setSeparatorColor:[UIColor clearColor]];
您可以使用:
(instancetype)init { return [[YourSubclassOfTableView alloc] initWithStyle:UITableViewStyleGrouped]; }
self.tableView.style = UITableViewStyleGrouped
编辑:
假设这是一个读/写属性。 在这种情况下,您可以遵循Dimitris的build议,并在实例化控制器时设置样式,或者(如果您使用的是XIB),可以通过IB进行设置。