swift 總結3

1/  UITextField 代理 

func textFieldShouldReturn(textField: UITextField) -> Bool {

      // 按下輸入法的 回車鍵 觸發的方法

        return true

        

    }

2/   tableviewcell 禁止選中

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

        }

    };

(2)cell的 初始化函數 

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!

    }

(3)調用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) ->()

    

}



4/ 當一個XXview繼承UIview 時  frame的代碼必須在自動佈局的函數中寫 

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);


        }

    }

}







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章