1/ UITextField 代理
func textFieldShouldReturn(textField: UITextField) -> Bool {
// 按下输入法的 回车键 触发的方法
return true
}
zyTableView.separatorStyle = UITableViewCellSeparatorStyle.None //分割线None
zyTableView.allowsSelection = false// 禁止选中
3/ 控制器调用cell
(1)cell中的数据给值 可以用这种方式
var friendData:Frined! = nil{
didSet{
imageView!.image = UIImage(named: (friendData?.icon)!)
textLabel!.text = friendData?.name
(textLabel!.textColor = friendData!.vip ? UIColor.redColor() : UIColor.blackColor() )
detailTextLabel?.text = friendData!.intro
}
};
class func cellWithTableView(tableView: UITableView) -> (FriendCell){
let thisID = "friend"
var cell: FriendCell? = tableView .dequeueReusableCellWithIdentifier(thisID) as! FriendCell?
if(cell == nil ){
cell = FriendCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: thisID)
}
return cell!
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = FriendCell.cellWithTableView(tableView)
let group = groups[indexPath.section]
let array = group.friends as NSArray
let item = array[indexPath.row] as! NSDictionary
let obj = Frined(dictionary: item)
cell.friendData = obj
return cell
}
5/ swift中 代理协议 在类的外面protocol ZYHeaderViewDelegate: NSObjectProtocol{
func headerViewDidClickedNameView(headerView: ZYHeaderView) ->()
}
class ZYHeaderView: UITableViewHeaderFooterView {
weak var delegate: ZYHeaderViewDelegate?
var countView: UILabel = UILabel()
var nameView: UIButton = UIButton()
var group: FriendGroup? = nil{
didSet{
nameView .setTitle(group!.name, forState: UIControlState.Normal)
let bac = 123
countView.text = "\(bac)"
}
}
class func headerViewWithTableView(tableView: UITableView) -> (ZYHeaderView) {
let headerID = "header"
var header: ZYHeaderView? = tableView.dequeueReusableHeaderFooterViewWithIdentifier(headerID) as? ZYHeaderView
if(header == nil){
header = ZYHeaderView()
}
return header!
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override init(reuseIdentifier: String?) {
super.init(reuseIdentifier: reuseIdentifier)
nameView = UIButton (type: UIButtonType.Custom)
nameView .setBackgroundImage(UIImage (named: "buddy_header_bg"), forState: UIControlState.Normal)
nameView .setBackgroundImage(UIImage(named: "buddy_header_bg_highlighted"), forState: UIControlState.Highlighted)
nameView .setImage(UIImage(named: "buddy_header_arrow"), forState: UIControlState.Normal)
nameView .setTitleColor(UIColor .blackColor(), forState: UIControlState.Normal)
nameView .contentHorizontalAlignment = UIControlContentHorizontalAlignment.Left
nameView .titleEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0)
nameView .contentEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0)
nameView .addTarget(self, action: "nameViewClick", forControlEvents: UIControlEvents.TouchUpInside)
nameView .imageView?.contentMode = UIViewContentMode.Center
nameView .imageView?.clipsToBounds = true
self.contentView .addSubview(nameView)
countView.textAlignment = NSTextAlignment.Right
countView.textColor = UIColor.grayColor()
self.contentView .addSubview(countView)
}
override func layoutSubviews() {
super.layoutSubviews()
self.nameView.frame = self.bounds
let countY:CGFloat = 0
let countH:CGFloat = self.frame.size.height
let countW:CGFloat = 150
let countX:CGFloat = self.frame.size.width - 10 - countW
self.countView.frame = CGRectMake(countX, countY, countW, countH)
}
func nameViewClick() -> (){
(self.group!.isOpend = !self.group!.isOpend )
delegate! .headerViewDidClickedNameView(self)
}
override func didMoveToSuperview() {
if(self.group!.isOpend){
self.nameView.imageView!.transform = CGAffineTransformMakeRotation( CGFloat(M_PI_2) );
}else{
self.nameView.imageView!.transform = CGAffineTransformMakeRotation(0);
}
}
}