美文网首页
swift第四周实训心得

swift第四周实训心得

作者: 无厘小阿先_ | 来源:发表于2016-12-11 20:46 被阅读0次

2016年12月11日 星期日 晚

这周总结的较少,时间也比较紧,希望大家见谅,但总结的都是比较重要的部分,希望有助于大家的学习和复习,下周一定会给大家一个更详细的总结,么么哒😘

day15

微信界面

  • 新建一个JNTViewController.swift继承自UITabBarController,在其中进行控制器的创建:
override func viewDidLoad() {
        super.viewDidLoad()
        let vc = ViewController()  //创建控制器
        self.addChildVC(vc: vc, title: "消息", image: UIImage(named: "tabbar_mainframe")!, selectImage: UIImage(named: "tabbar_mainframeHL")!.withRenderingMode(.alwaysOriginal))
        
        let contact = ContactViewController()
        self.addChildVC(vc: contact, title: "联系人", image: UIImage(named: "tabbar_contacts")!, selectImage: UIImage(named: "tabbar_contactsHL")!.withRenderingMode(.alwaysOriginal))
        
        let discover = DiscoverViewController()
         self.addChildVC(vc: discover, title: "发现", image: UIImage(named: "tabbar_discover")!, selectImage: UIImage(named: "tabbar_discoverHL")!.withRenderingMode(.alwaysOriginal))
        
        let I = IViewController()
        self.addChildVC(vc: I, title: "我", image: #imageLiteral(resourceName: "tabbar_me.png"),selectImage: #imageLiteral(resourceName: "tabbar_meHL.png").withRenderingMode(.alwaysOriginal))
        
    }

    //1 控制器
    //2 tabbar文字
    //3 图片
    //4 选中图片
    func addChildVC(vc: UIViewController, title: String, image: UIImage, selectImage: UIImage) {
        //设置导航控制器
        let vcN = JNViewController(rootViewController: vc)
        //把导航控制器设置为子控制器给tabbar管理
        self.addChildViewController(vcN)
        //设置文字、图片
        vcN.tabBarItem = UITabBarItem(title: title, image: image, selectedImage: selectImage)
        let color = UIColor.init(colorLiteralRed: 40.0 / 255.0, green: 177.0 / 255.0, blue: 26.0 / 255.0, alpha: 1.0)
        //修改文字
        let dic = [NSFontAttributeName: UIFont.systemFont(ofSize: 12),NSForegroundColorAttributeName: color]
        vcN.tabBarItem.setTitleTextAttributes(dic, for: .selected)
        
        let dic1 = [NSFontAttributeName: UIFont.systemFont(ofSize: 12), NSForegroundColorAttributeName: UIColor.lightGray]
        vcN.tabBarItem.setTitleTextAttributes(dic1, for: .normal)
        
        self.addChildViewController(vcN)
    }
  • 新建一个JNViewController.swift继承自UINavigationController,用来修改状态栏的属性:
override func viewDidLoad() {
        super.viewDidLoad()
        let color = UIColor.init(colorLiteralRed: 55.0 / 255.0, green: 53 / 255.0,blue: 60 / 255.0, alpha: 1.0)
        self.navigationBar.barTintColor = color;
        //修改状态栏的颜色
        let dic = [NSFontAttributeName: UIFont.boldSystemFont(ofSize: 20),NSForegroundColorAttributeName: UIColor.white]
        self.navigationBar.titleTextAttributes = dic
    }

可以把ViewController设置为微信下边的第一个,再分别新建微信的下边另外三个ViewController,分别为:ContactViewController.swift继承自UIViewController;DiscoverViewController.swift继承自UIViewController,DiscoverTableViewCell.swift继承自UITableViewCell;IViewController.swift继承自UIViewController,ITableViewCell.swift和I2TableViewCell.swift都继承自UITableViewCell;

  • 在DiscoverViewController.swift中进行“发现”的设置:

    • 先创建一个类
  class CellMode : NSObject {
    var title : String? = nil
    var image : String? = nil
}
  • DiscoverViewController要继承UITableViewDelegate, UITableViewDataSource两个协议;

    • 在DiscoverViewController中键入:
//放分组对应的数据
  var arr : [[CellMode]] = [[CellMode]]()
  
  var tableView : UITableView? = nil
  override func viewDidLoad() {
      super.viewDidLoad()
      self.title = "发现"
      self.view.backgroundColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
      self.tableView = UITableView(frame: self.view.bounds, style: .grouped)
      self.tableView?.delegate = self
      self.tableView?.dataSource = self
      self.view.addSubview(self.tableView!)
      self.load()
      
      //注册
      self.tableView?.register(DiscoverTableViewCell.self, forCellReuseIdentifier: "tag")
      
  }
  
  func load() {
      let mode1 = CellMode()
      mode1.title = "朋友圈"
      mode1.image = "ff_IconShowAlbum"
      let arr = [mode1]
      
      let mode2 = CellMode()
      mode2.title = "扫一扫"
      mode2.image = "ff_IconQRCode"
      
      let mode3 = CellMode()
      mode3.title = "摇一摇"
      mode3.image = "ff_IconShake"
      let arr1 = [mode2, mode3]
      
      let mode4 = CellMode()
      mode4.title = "附近的人"
      mode4.image = "ff_IconLocationService"
      
      let mode5 = CellMode()
      mode5.title = "漂流瓶"
      mode5.image = "ff_IconBottle"
      let arr2 = [mode4, mode5]
      
      
      let mode6 = CellMode()
      mode6.title = "购物"
      mode6.image = "CreditCard_ShoppingBag"
      
      let mode7 = CellMode()
      mode7.title = "游戏"
      mode7.image = "Userguide_Gamecenter_icon"
      let arr3 = [mode6, mode7]
      
      self.arr.append(arr)
      self.arr.append(arr1)
      self.arr.append(arr2)
      self.arr.append(arr3)
      
  }
  
  func numberOfSections(in tableView: UITableView) -> Int {
          return self.arr.count
  }
  
  func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
          return self.arr[section].count
  }
  
  func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
      let cell = tableView.dequeueReusableCell(withIdentifier: "tag", for: indexPath) as! DiscoverTableViewCell
      //取出模型
      let m = self.arr[indexPath.section][indexPath.row]
      //cell.imageV?.image = UIImage(named: m.image!)
      //cell.titleLabel?.text = m.title
      cell.model = m
      //取消选中按钮
      cell.selectionStyle = .none
      //详情按钮
      cell.accessoryType = .disclosureIndicator
      
      return cell
  }
  
  //调整上页边距
  func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
      return 0.1
  }
  
  func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
      return UIView(frame: CGRect(x: 0, y: 0, width: 0, height: 0))
  }
  
  //每个分组之间的间距
  func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
      return 10
  }
  • 在DiscoverTableViewCell中键入:
private var imageV : UIImageView? = nil
    private var titleLabel : UILabel? = nil
    var model : CellMode {
        set {
            //newValue传进来默认值
            self.imageV?.image = UIImage(named: newValue.image!)
            self.titleLabel?.text = newValue.title
        }
        get {
            return CellMode()
        }
    }
    
    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        self.imageV = UIImageView(frame: CGRect(x: 15, y: 5, width: 30, height: 30))
        self.addSubview(self.imageV!)
        
        self.titleLabel = UILabel(frame: CGRect(x: 55, y: 5, width: 200, height: 30))
        self.addSubview(self.titleLabel!)
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    override func awakeFromNib() {
        super.awakeFromNib()
        
    }
  • 在IViewController中新建一个类:
class CellMode1 : NSObject {
    var image1 : String? = nil
    var title1 : String? = nil
    var title2 : String? = nil
    var image2 : String? = nil
}
  • IViewController要继承UITableViewDelegate, UITableViewDataSource两个协议;

  • 在IViewController中键入:

//放分组对应数据
    var arr : [[CellMode1]] = [[CellMode1]]()
    var tableView : UITableView? = nil
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
        self.title = "我"
        self.tableView = UITableView(frame: self.view.bounds, style: .grouped)
        self.tableView?.delegate = self
        self.tableView?.dataSource = self
        self.view.addSubview(self.tableView!)
        self.load()
        
        //注册
        self.tableView?.register(I2TableViewCell.self, forCellReuseIdentifier: "tag")
        self.tableView?.register(ITableViewCell.self, forCellReuseIdentifier: "tag2")

    }
    func load() {
        let mode0 = CellMode1()
        mode0.image1 = "nv.jpg"
        mode0.title1 = "大叔的小萝莉"
        let arr0 = [mode0]
        
        let mode1 = CellMode1()
        mode1.title2 = "相册"
        mode1.image2 = "MoreMyAlbum"
        let mode2 = CellMode1()
        mode2.title2 = "收藏"
        mode2.image2 = "MoreMyFavorites"
        let mode3 = CellMode1()
        mode3.title2 = "钱包"
        mode3.image2 = "MoreMyBankCard"
        let mode4 = CellMode1()
        mode4.title2 = "卡包"
        mode4.image2 = "MyCardPackageIcon"
        let arr1 = [mode1, mode2, mode3, mode4]
        
        let mode5 = CellMode1()
        mode5.title2 = "表情"
        mode5.image2 = "MoreExpressionShops"
        let arr2 = [mode5]
        
        let mode6 = CellMode1()
        mode6.title2 = "设置"
        mode6.image2 = "MoreSetting"
        let arr3 = [mode6]
        
        self.arr.append(arr0)
        self.arr.append(arr1)
        self.arr.append(arr2)
        self.arr.append(arr3)

    }
    
    func numberOfSections(in tableView: UITableView) -> Int {
        return self.arr.count
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return self.arr[section].count
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        if indexPath.section == 0 {
         let cell = tableView.dequeueReusableCell(withIdentifier: "tag", for: indexPath) as! I2TableViewCell
        //取出模型
        let m = self.arr[indexPath.section][indexPath.row]
        //cell.imageH?.image = UIImage(named: m.image1!)
        //cell.nameLabel?.text = m.title1
            cell.mode2 = m
        //取消选中按钮
        cell.selectionStyle = .none
        //详情按钮
        cell.accessoryType = .disclosureIndicator
        return cell
        } else {
           let cell = tableView.dequeueReusableCell(withIdentifier: "tag2", for: indexPath) as! ITableViewCell
            let m = self.arr[indexPath.section][indexPath.row]
            //cell.imageV?.image = UIImage(named: m.image2!)
            //cell.titleLabel?.text = m.title2
            cell.mode1 = m

            //取消选中按钮
            cell.selectionStyle = .none
            //详情按钮
            cell.accessoryType = .disclosureIndicator
            
            return cell

        }
        //cell.model = m
    }
    
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        if indexPath.section == 0 {
            return 100
        } else {
            return 50
        }
    }
    
    //调整上页边距
    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return 0.1
    }
    
    func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
        return UIView(frame: CGRect(x: 0, y: 0, width: 0, height: 0))
    }
    
    //每个分组之间的间距
    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
        return 10
    }
  • 在ITableViewCell中键入:
var imageV : UIImageView? = nil
    var titleLabel : UILabel? = nil
    
    var mode1 : CellMode1 {
        set {
            self.imageV?.image = UIImage(named: newValue.image2!)
            self.titleLabel?.text = newValue.title2
        }
        get {
            return CellMode1()
        }
    }
    
    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
    
        self.imageV = UIImageView(frame: CGRect(x: 15, y: 5, width: 30, height: 30))
        self.addSubview(self.imageV!)
        
        self.titleLabel = UILabel(frame: CGRect(x: 55, y: 5, width: 200, height: 30))
        self.addSubview(self.titleLabel!)
        
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }
  • 在I2TableViewCell中键入:
var imageH : UIImageView? = nil
    var nameLabel : UILabel? = nil
    var mode2 : CellMode1 {
        set {
            self.imageH?.image = UIImage(named: newValue.image1!)
            self.nameLabel?.text = newValue.title1
        }
        get {
            return CellMode1()
        }
    }

    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        self.imageH = UIImageView(frame: CGRect(x: 15, y: 5, width: 80, height: 80))
        self.imageH?.layer.cornerRadius = 8
        self.imageH?.layer.masksToBounds = true
        self.addSubview(self.imageH!)
        
        self.nameLabel = UILabel(frame: CGRect(x: 105, y: 5, width: 200, height: 40))
        self.nameLabel?.font = UIFont.systemFont(ofSize: 20)
        self.addSubview(self.nameLabel!)
        
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }
  • 在ViewController中对背景颜色进行设置:
override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
    }
  • 运行结果:

day16

新闻页面

  • 新建三个UIViewCell,分别为:TableViewCell,STableViewCell,TTableViewCell,并分别创建xib文件:

    • 分别在这几个xib中进行控件的拖动及约束的设置,三个图如下所示:


  • 把相应的控件按住control拖动到相应的TableViewCell中设置为全局变量;

  • ViewController继承UITableViewDelegate, UITableViewDataSource协议;

  • 向ViewController中键入:

var tabelview : UITableView! = nil
    override func viewDidLoad() {
        super.viewDidLoad()
        self.tabelview = UITableView(frame: self.view.frame, style: .grouped)
        self.tabelview.delegate = self
        self.tabelview.dataSource = self
        self.view.addSubview(self.tabelview)
        //注册
        self.tabelview.register(UINib(nibName: "TableViewCell", bundle: Bundle.main), forCellReuseIdentifier: "tag")
        self.tabelview.register(UINib(nibName: "STableViewCell", bundle: Bundle.main), forCellReuseIdentifier: "tag1")
        self.tabelview.register(UINib(nibName: "TTableViewCell", bundle: Bundle.main), forCellReuseIdentifier: "tag2")
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 3
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        if indexPath.row == 0{
        let cell = tableView.dequeueReusableCell(withIdentifier: "tag", for: indexPath) as! TableViewCell
        cell.titlelabel.text = "摩尔金融"
        cell.detaillabel.text = "2016年投资展望:大势分析+10大机会+10大金股"
        cell.imageview.image = UIImage(named: "1")
        cell.selectionStyle = .none
        return cell
        } else if indexPath.row == 1 {
            let cell = tableView.dequeueReusableCell(withIdentifier: "tag1", for: indexPath) as! STableViewCell
            cell.nameLabel.text = "做封面人物 秀出我的态度"
            cell.firstimage.image = UIImage(named: "2")
            cell.secondimage.image = UIImage(named: "3")
            cell.thirdimage.image = UIImage(named: "4")
            cell.selectionStyle = .none
            return cell
        } else {
            let cell = tableView.dequeueReusableCell(withIdentifier: "tag2", for: indexPath) as! TTableViewCell
            cell.titleL.text = "新闻资讯"
            cell.image1.image = UIImage(named: "5")
            cell.selectionStyle = .none
            return cell
        }
    }
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        if indexPath.row == 0 {
            return 100
        } else if indexPath.row == 1 {
            return 150
        } else {
            return 200
        }
    }
  • 运行结果:

day17

运用Main.storyboard

  • 打开Main.storyboard,将第一个ViewController设置为Navigation Controller,再拖动两个View Controller,第一个View Controller上拖一个button控件,按住control键将button连到第二个View Controller上,选择show,结果如图:
  • 新建一个RedViewController继承自UIViewController:
var name : String! = nil
    override func viewDidLoad() {
        super.viewDidLoad()
        print(name)
    }
  • 在ViewController中键入:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        //获取目标控制器
        let vc = segue.destination;
        //判断目标控制器是不是你想跳转的
        if vc is RedViewController {
            let descriptionVc = vc as! RedViewController
            descriptionVc.name = "张三"
        }
    }
  • 运行结果:

单元格

  • 在Main.storyboard中进行控件的拖动及约束的设置,如图:
  • 新建RootTableViewCell继承自UITableViewCell,将刚才约束好的控件进行拖动至RootTableViewCell中;

  • 将tableView按住control拖动至ViewController;

  • 在ViewController中键入:

override func viewDidLoad() {
        super.viewDidLoad()
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 10
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "RootTableViewCell", for: indexPath) as! RootTableViewCell
        cell.titleLabel.text = "张姗"
        cell.headImage.image = UIImage(named: "nv.jpg")
        return cell
    }
  • 运行结果:

电话本

  • 在Main.storyboard中进行如前面的设置,三个页面,并进行约束,结果如图:
  • 新建RootTableViewCell继承自UITableViewCell,将之前设置好的控件headImage
    ,titleLabel,detailLabel按住control拖入NextViewController中;

  • 新建NextViewController继承自UIViewController,将之前设置好的控件nameTextField
    ,phoneTextField按住control拖入NextViewController中并键入:

var name : String! = nil
    var phone : String! = nil
    
    var sendMsg:((String, String)-> Void)! = nil
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.nameTextField.text = self.name
        self.phoneTextField.text = self.phone
    }

    @IBAction func btnAction(_ sender: UIButton) {
        self.sendMsg(self.nameTextField.text!, self.phoneTextField.text!)
        let _ = self.navigationController?.popViewController(animated: true)
    }
  • 在ViewController中拖入tableView并键入:
 override func viewDidLoad() {
        super.viewDidLoad()

    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 10
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
       // if indexPath.row == 0 {
        let cell = tableView.dequeueReusableCell(withIdentifier: "RootTableViewCell", for: indexPath) as! RootTableViewCell
        cell.headImage.image = UIImage(named: "nv.jpg")
        cell.titleLabel.text = "姓名"
        cell.detailLabel.text = "电话"
        return cell
    }
    
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 100
    }
    
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
       let _ = self.RootTableView .indexPath(for: sender as! RootTableViewCell)
    //先控制第二个控制器
        let second = segue.destination
        if second is NextViewController {
            let sec = second as! NextViewController
            sec.name = "张三"
            sec.phone = "3333333333"
            sec.sendMsg = {
                print("name = \($0), phone = \($1)")
            }
        }
    }
    
//    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
//        return 0.1
//    }
  • 运行结果:

练习

  • 在Main.storyboard中进行控件的拖动及约束的设置,如图:
  • 将设置好的控件按住control拖入ViewController;

  • 在viewcontroller中添加两个方法:

//点击屏幕时走
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
       self.textfield.resignFirstResponder()   
}
    
//结束编辑
func textFieldDidEndEditing(_ textField: UITextField) {
       self.label1.text = self.textfield.text
}
  • 运行结果:

day18

好友列表

  • 在ViewController中新建一个枚举:
//控制分组的开关枚举
enum Switch {
    case open
    case close
}
  • 在ViewController中新建一个手势类:
//继承单击手势
class Tap : UITapGestureRecognizer {
    var section : Int? = nil
    
}
  • ViewController继承自UITableViewDelegate, UITableViewDataSource协议:

  • 在ViewController中键入:

    var tableView : UITableView! = nil
    //前面是分组的头部,后面是分组中的人员
    var dic : [String:[String]] = [String:[String]]()
    //keys的数组
    var arr : [String] = [String]()
    
    var SwitchArr : [Switch] = [.close,.close,.close]
    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
        dic["我的好友🤓️"] = ["张三","李四","王五","赵六","小白"]
        dic["朋友🤗️"] = ["老李","小六","帅帅","张姗"]
        dic["同学🤒️"] = ["琼哥","一姐","小哥","师俊南","靖媛","猫咪"]
        
        //初始化一个数组
        for item in dic.keys {
            arr.append(item)
        }
        self.tableView = UITableView(frame: self.view.frame, style: .grouped)
        self.tableView.delegate = self
        self.tableView.dataSource = self
        self.view.addSubview(self.tableView)
    }

    //头部视图
    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return 50
    }
    
    //自定义头部视图
    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let view = UIView(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 50))
        //单击手势
        let tap = Tap()
        tap.section = section
        view.addGestureRecognizer(tap)
        tap.addTarget(self, action: #selector(tapAction(sender:)))
        let label = UILabel(frame: CGRect(x: 300, y: 20, width: 120, height: 40))
        if self.SwitchArr[section] == .close {
        label.text = "▼"
        } else {
            label.text = "▲"
        }
        view.addSubview(label)

        let label1 = UILabel(frame: CGRect(x: 20, y: 20, width: 120, height: 40))
        label1.text = self.arr[section]
        view.addSubview(label1)

        return view
        
    }
    
    //打开手势方法
    func tapAction(sender: Tap) {
        //先取出来section
        let temp = sender.section  //当前点击第几个
        
        //取反
        if self.SwitchArr[temp!] == .close {
            self.SwitchArr[temp!] = .open
        } else {
            self.SwitchArr[temp!] = .close

        }
        //刷新表格
        self.tableView.reloadData()
    }
    
    //尾部视图
    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
        return 0.1
    }
    
    //多少分组
    func numberOfSections(in tableView: UITableView) -> Int {
        return self.arr.count
    }
    
    //每组多少个
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        
        
        let Sswitch = self.SwitchArr[section]
        if Sswitch == .close {
            return 0
        }
        
        //先从数组中取出keys,再根据keys值取出对应的数组
        let array = dic[self.arr[section]]
        return (array?.count)!
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = UITableViewCell(style: .default, reuseIdentifier: "tag")
        let array = dic[self.arr[indexPath.section]]
        let str = array?[indexPath.row]
        cell.textLabel?.text = str
        return cell
    }
  • 运行结果:

(注:由于这周学的都是向xib中拖动控件而不是打代码,所以详细的拖动步骤以及约束的设置都没有向大家详细的介绍,约束不会的地方以后会为大家再进行总结。)

相关文章

  • swift第四周实训心得

    2016年12月11日 星期日 晚 这周总结的较少,时间也比较紧,希望大家见谅,但总结的都是比较重要的部分,希望有...

  • swift第二周实训心得

    2016年11月27日 星期日 早 这周集宁还是比较冷的,刚下完一场雪,不过一天天的又回温了,感觉今年真的很不错啊...

  • 第四周

    期待已久的数控实训终于到来了。本次实训,从第四周开始,一直实训到第九周,中途国庆还要放掉一周,实际上就只有...

  • swift第一周实训心得

    2016年11月18日 星期五 晚 11月的集宁,相对于来大学的以往两年反倒给人一些暖意,但毕竟是晚上,天气预报的...

  • 第四周

    转眼间,我们就已经来到了第四周了,我们这周开始要实训了,我们今年实训五周,五周后我们开始考工,我们考的是1+X,...

  • 依旧烦恼的一周

    这是第二周了,还是有很多麻烦的事情,我们第四周到第九周要去实训,估计实训结束就差不多要期中考试了,所以时间比较紧...

  • 实战报告的总结

    一转眼,我们来实训中心的日子已经快过完第四周了,虽然在实训中心不用像以前那样上课,但其实也挺幸苦的。 这次实训的目...

  • 高一下学期第四周

    这周是这个学期的第四周,时间过的很快,这周和上一周我们都在实训没有上课,实训的内容是车工,就是在车床上加工工件,虽...

  • 第四周

    这周是这学期的第四周,一转眼实训马上就要结束了,我现在还记得实训前我还在想这个数控铣实训肯定超级难,我数控学的又那...

  • 第四周

    时间好快已经是第四周了,这周我们还是实训,这周比较重要,因为要进行实训测试,不像上周只是玩玩,这周要努力了,我们数...

网友评论

      本文标题:swift第四周实训心得

      本文链接:https://www.haomeiwen.com/subject/kqbpmttx.html