滚动视图的重要属性及方法

2016-09-06  本文已影响0人  乡野村夫汉

scrollView的基本属性和方法

核心属性

协议方法

//========滚动相关=======
//!!!1.在滚动视图滚动的时候实时调用
func scrollViewDidScroll(scrollView: UIScrollView){

    print("正在滚动")
}
//!!!2.将要开始拖动scrollView的时候会调用这个方法(将要开始滚动的时候)
func scrollViewWillBeginDragging(scrollView: UIScrollView){
    
    print("将要开始拖动")
}

//!!!4.已经结束减速的时候调用(已经停止滚动)
func scrollViewDidEndDecelerating(scrollView: UIScrollView){

    print("已经停止滚动")
}

//3.将要停止拖动的时候会调用这个方法
//参数2:停止时在x和y方向的加速度
//参数3:预测停止滚动时的偏移量
func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>){
    print(velocity)
    print("将要停止拖动")
}

//5.已经停止拖动的时候会调用这个方法
//参数2:是否将要减速
func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool){

    if decelerate {
        print("会减速")
    }else{
    
        print("不会减速")
    }
    print("已经停止拖动")
}

//6.停止滚动动画的时候调用(当通过带动画的效果设置偏移量的时候才会有效)
//scrollView.setContentOffset(CGPointMake(200, 200), animated: true)
//通过手拖动让scrollView滚动和这个方法没有任何关系
func scrollViewDidEndScrollingAnimation(scrollView: UIScrollView){
    
    print("停止动画")
    
}

//7.已经滚动到顶部的时候会调用这个方法(点状态栏回到顶部的时候才有效)
func scrollViewDidScrollToTop(scrollView: UIScrollView){

    print("滚动到顶部")
}


//=======缩放相关======
//告诉scrollView缩放对象(对哪个视图进行缩放,一般是对scrollView上imageView进行缩放)
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView?{

    //拿到imageView
    return scrollView.viewWithTag(100)
}

//正在缩放的时候,会实时的调用这个方法
func scrollViewDidZoom(scrollView: UIScrollView){

    print("正在缩放")
    
}


PageControl

核心属性

tableView

核心属性及方法

cell核心属性

代理方法

//滚动的时候实时调用
func scrollViewDidScroll(scrollView: UIScrollView) {
}
//cell被选中
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
}
//设置cell高度
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
}
// 每个组上面部分空白的高度
func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
}
//每个组下面部分的高度
func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
}

数据源方法

//设置分组数
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 分组数
}
//设置每组的cell个数
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
    return 每组的cell个数
}
//创建cell
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
    //固定写法
    //第一步,在复用池中查看有没有符合要求的cell
    var cell = tableView.dequeueReusableCellWithIdentifier("cell")
    //如果没有,就创建一个cell,并且给cell一个标识符,以便用于下一次在复用池中查找
    if cell == nil {
        cell = UITableViewCell.init(style: .Subtitle, reuseIdentifier: "cell")
    }
    //设置cell属性和样式
    ==code==
    return cell!
}
//设置每个组的标题
func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
    let a = "✰"
    let str = "\(a)abcdefghijklmnopqrstuvwxyz"
    let c = str.characters[str.startIndex.advancedBy(section)]
    return "\(c)"
}


//设置右边用于定位的字母
func sectionIndexTitlesForTableView(tableView: UITableView) -> [String]? {
    var strArray: [String] = []
    strArray = ["A", "B", "C", "D", "E","F", "G", "H"..."z"]
    return strArray
}

上一篇 下一篇

猜你喜欢

热点阅读