您的位置:首页 > 移动开发 > Swift

swift 总结3

2015-09-01 15:11 363 查看
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);

        }
    }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: