在UI中swift不是用init初始化 而是用() 属性都是"."出来的
例子:懒加载一个button
lazy var btn:UIButton = {
let button = UIButton(frame: CGRectMake(70,70,50,50))
button.backgroundColor = UIColor.redColor()
button.addTarget(self, action: "btnAction:", forControlEvents: UIControlEvents.TouchUpInside)//button的点击方法名除了双引号表示的 还有 Selector("btnAction:") 和 #selector(btnAction:) 这两种
return button
}()
button的点击事件方法的实现:进行界面跳转
func btnAction(btn:UIButton){
let secondVC = SecondViewController()
navigationController?.pushViewController(secondVC, animated: true)
}
懒加载一个label
lazy var label:UILabel = {
let temp = UILabel(frame: CGRectMake(70,150,90,30))
temp.backgroundColor = UIColor.cyanColor()
return temp
}()
用swift写tableview的时候 代理写的地方有点不同
//写在类的外面
//extension 本类名:协议名{}
例子:
extension ViewController:UITableViewDelegate,UITableViewDataSource{
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tab.dequeueReusableCellWithIdentifier("ss", forIndexPath: indexPath) as! ContactCell//强转 我这边自定义了一个cell 并且定义了一个联系人类 又定义了一个单利 并且把联系人添加到数组中
let contact = ContactManager.shareContactManager.contactArray[indexPath.row]
cell.cellWithContact(contact)//在自定义cell中写了一个方法 来将联系人中的信息赋值给cell中的控件
return cell
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return ContactManager.shareContactManager.contactArray.count
}
}