Swift3.0学习

Swift3.oTableView使用

2017-01-04  本文已影响2209人  我想走走
//
//  ViewController.swift
//  swiftNew
//
//  Created by mibo02 on 17/1/4.
//  Copyright © 2017年 mibo02. All rights reserved.
//

import UIKit

class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate{

    let btnStartTag:Int = 1000//定义btn的tag起始值
    let name_links_tuples:[(String,String)] = [
    ("第一个","峰峰"),
    ("第二个","小明"),
    ("第三个","小王")
    ]
    let table:UITableView = UITableView.init(frame: UIScreen.main.bounds, style: UITableViewStyle.plain)
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        //添加到view上
        self.view.addSubview(table)
        //遵守协议
        table.dataSource = self
        table.delegate = self
      
    }
    //实现协议中的方法
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return name_links_tuples.count
    }
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell:UITableViewCell = UITableViewCell.init(style: UITableViewCellStyle.default, reuseIdentifier: nil)
        
        let newtitle:String = name_links_tuples[indexPath.row].0
        
        
        //每一行有一个下载的按钮
        let btn:UIButton = UIButton.init(type: UIButtonType.custom)
        btn.frame = CGRect(x:UIScreen.main.bounds.width - 100, y:10, width:80, height:50)
        btn.backgroundColor = UIColor.red
        btn.setTitle("下载", for: UIControlState.normal)
        btn.setTitleColor(UIColor.black, for: UIControlState.normal)
        btn.tag = indexPath.row + btnStartTag
        btn.addTarget(self, action:#selector(clickBtnAction), for:.touchUpInside)
        
        cell.textLabel?.text = newtitle
        cell.contentView.addSubview(btn)
        return cell
        
    }
    //table的cell的高度
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 70
    }
    func tableView(_ tableView: UITableView, willSelectRowAt indexPath: IndexPath) -> IndexPath? {
        return nil
    }
    func clickBtnAction(sender:UIButton) {
        print("....")
        let indexOfBtn:Int = sender.tag  - btnStartTag
        if indexOfBtn >= 0 && indexOfBtn < name_links_tuples.count {
            let str = name_links_tuples[indexOfBtn].1
            let url = NSURL(string:str)
            if url != nil {
                UIApplication.shared.open(url as! URL, options: [:], completionHandler: nil)
            }
            
            
        }
        
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

//值得注意的一点是,button的点击事件,无论带不带参数,写的时候都不需要加 : 直接将方法名写上即可。
//还有一点就是没想到frame的写法已经变成了这样。

屏幕快照 2017-01-04 下午2.34.50.png
上一篇下一篇

猜你喜欢

热点阅读