1、问题描述
最后的界面上什么都没有,空白的。如下图:
2、敢问:问题出在什么地方?
3、代码如下:
import UIKit enum UIControlType { case Basic; case Advanced; } class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate{ var tableView:UITableView?; var ctrNames:[String] = ["按钮UIButton", "标签UILabel", "文本框UITextField"]; var allNames:Dictionary<Int,[String]>?; var adHeader:[String]?; var controlType:UIControlType?; override func loadView() { super.loadView(); } override func viewDidLoad() { super.viewDidLoad() /// 初始化数据,把这次数据放在属性列表文件里 allNames = [0:ctrNames, 1:[String]([ "UIDatePicker 日期选择器", "UIWebView 网页选择器", "UIToolBar 工具条"])]; self.adHeader = ["常见 UIkit 控件", "高级UIKIt控件"]; } @IBAction func plainClicked(sender:UIBarButtonItem) { controlType = UIControlType.Basic; /// 创建表视图 self.tableView = UITableView(frame: CGRectMake(0, 100, view.frame.size .width, view.frame.size.height - 100), style: UITableViewStyle.Plain); self.tableView!.delegate = self; self.tableView!.dataSource = self; /// 创建单元格 self.tableView!.registerClass(UITableViewCell.self, forCellReuseIdentifier: "SwiftCell"); self.view.addSubview(self.tableView!); /// 创建标签头 let headerLabel = UILabel(frame: CGRectMake(0, 0, view.bounds.size .width, 30)); headerLabel.backgroundColor = UIColor.blackColor(); headerLabel.textColor = UIColor.whiteColor(); headerLabel.numberOfLines = 0; headerLabel.lineBreakMode = NSLineBreakMode.ByCharWrapping; headerLabel.text = "常见UIKit控件"; headerLabel.font = UIFont.italicSystemFontOfSize(20); /// 将label显示到TableView中 self.tableView!.tableHeaderView = headerLabel; } @IBAction func groupClickd(sender:UIBarButtonItem) { controlType = UIControlType.Advanced; /// 创建视图 self.tableView = UITableView(frame: CGRectMake(0, 100, view.frame.size.width, view.frame.size .height - 100), style: UITableViewStyle.Grouped); self.tableView!.delegate = self; self.tableView!.dataSource = self; /// 创建单元格 self.tableView!.registerClass(UITableViewCell.self, forCellReuseIdentifier: "SwiftCell"); self.view.addSubview(self.tableView!); /// 创建标签头 let headerLabel = UILabel(frame: CGRectMake(0, 0, view.bounds.size .width, 30)); headerLabel.backgroundColor = UIColor.blackColor(); headerLabel.textColor = UIColor.whiteColor(); headerLabel.numberOfLines = 0; headerLabel.lineBreakMode = NSLineBreakMode.ByCharWrapping; headerLabel.text = "高级UIKit控件"; headerLabel.font = UIFont.italicSystemFontOfSize(20); self.tableView!.tableHeaderView = headerLabel; } /// 创建分区 func numberOfSectionsInTableView(table:UITableView)->Int { return controlType == UIControlType.Basic ? 1:2; } /// 返回行数 func tableView(tableView:UITableView, numberOfRowsInSection section:Int)->Int { let data = allNames![section]; return data!.count; } /// 协议中得方法,该方法的返回值决定指定分区的头部 func tableView(table:UITableView, titleForHeaderInSection section:Int)->String? { return adHeader?[section]; } /// 协议中的方法,该方法的返回值决定指定分区的尾部 func tableView(table:UITableView, titleForFooterInSection section:Int)->String? { return "有\(allNames![section]!.count)个控件"; } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let identify = "SwiftCell"; let cell = tableView.dequeueReusableCellWithIdentifier(identify, forIndexPath: indexPath); cell.accessoryType = UITableViewCellAccessoryType.DisclosureIndicator; let secno = indexPath.section; let data = allNames![secno]; cell.textLabel?.text = data![indexPath.row]; return cell; } /// UItableViewDelegate 方法,处理列表项的选中事件 func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { tableView.deselectRowAtIndexPath(indexPath, animated: true); let itemString = ctrNames[indexPath.row]; /// 创建提示框 let alertView = UIAlertController(title: "提示", message: "你选中了\(itemString)", preferredStyle: .Alert); /// 向提示框中增加按钮 let alertAction = UIAlertAction(title: "确定", style: UIAlertActionStyle.Default, handler: {(action)->Void in}); alertView.addAction(alertAction); presentViewController(alertView, animated:true, completion:nil); } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }4、UITableView控件详解