第七周Swift總結(jié)

day one

先建立scrollView對(duì)象(大小先self.view.bounds)
然后添加imageView上去
最后改變scollView大小 一般為self.view.bounds的寬和高的倍數(shù)
方法有幾個(gè)比較常用的 contenSize(確定容量大邢朋稀) contenOffset 內(nèi)容偏移量
pagingEnabled(是否分頁(yè)) directionLocked(鎖定方向 每次滑動(dòng)只能一個(gè)方向)

以下是幾個(gè)方法使用

       //==========從UIView繼承下來的屬性==========
        //1.創(chuàng)建UIScrollView對(duì)象
        //這個(gè)時(shí)候UIScrollView內(nèi)容的大小和scrollView本身是一樣的
        let scrollView = UIScrollView.init(frame: self.view.bounds)
        //2.添加到界面上
        self.view.addSubview(scrollView)
        //3.設(shè)置背景顏色
        scrollView.backgroundColor = UIColor.yellowColor()
        //4.添加imageView
        //imageView的坐標(biāo)是(0,0),大小是圖片的大小
        /*
        let imageView = UIImageView.init(image: UIImage.init(named: "1092.jpg"))
        //在scrollView上添加子視圖拣宰,實(shí)質(zhì)是將子視圖添加到它的內(nèi)容上的
        scrollView.addSubview(imageView)
         */
        
        //創(chuàng)建多張圖片
        for item in 1...4 {
            let imageView = UIImageView.init(frame: CGRectMake(CGFloat(item-1)*scrollView.bounds.width, 0, scrollView.bounds.width, scrollView.bounds.height))
            scrollView.addSubview(imageView)
            imageView.image = UIImage.init(named: "35_\(item).jpg")
        }
        
        
        
        //=========UIScrollView專有屬性======
        //核心屬性
        //!!!1.內(nèi)容大小
        //scrollView.contentSize = CGSizeMake(self.view.bounds.width * 2, self.view.bounds.height*2)
        //如果想要能夠通過滾動(dòng)將圖片內(nèi)容顯示全溜畅,就將scrollView的內(nèi)容大小設(shè)置為和圖片一樣的大小
        scrollView.contentSize = CGSizeMake(4*scrollView.bounds.width, scrollView.bounds.height*3)
        
        //!!!2.內(nèi)容偏移量
        //scrollView默認(rèn)顯示的是內(nèi)容左上角的部分
        scrollView.contentOffset = CGPointMake(scrollView.bounds.width, 0)
        
        //3.設(shè)置是否可以分頁(yè)
        //true->每次滾動(dòng)的距離是一頁(yè)的距離
        //一頁(yè)的大小就是scrollView的frame的大小舒裤。如果分頁(yè)笤成,那么每次橫向滾動(dòng)滾動(dòng)的距離是scrollView的寬度嘹狞,上下滾動(dòng)的距離是scrollView的高度
        scrollView.pagingEnabled = true
        
        
        //其他屬性
        //1.內(nèi)容邊距
        //設(shè)置scrollView內(nèi)容到scrollView本身上左下右的距離(默認(rèn)都是0)
        //scrollView.contentInset = UIEdgeInsetsMake(20, 20, 20, 20)
    
        //3.設(shè)置是否鎖定一定方法(默認(rèn)false->同一時(shí)間既可以上下滾動(dòng)又可以左右滾動(dòng))
        scrollView.directionalLockEnabled = true  //true->同一時(shí)間只能上下滾動(dòng)或者左右滾動(dòng)
        
        //3.滑到內(nèi)容邊緣的時(shí)候是否可以滾動(dòng)一段距離再?gòu)椈厝?默認(rèn)true)
        scrollView.bounces = false
        
        //4.設(shè)置是否可以滾動(dòng)(默認(rèn)true->可以滾動(dòng))
        scrollView.scrollEnabled = true
        
        //5.設(shè)置是否顯示滾動(dòng)條(默認(rèn)true->顯示)
        //是否顯示水平方向的滾動(dòng)條
        scrollView.showsHorizontalScrollIndicator = true
        //是否顯示垂直方向的滾動(dòng)條
        scrollView.showsVerticalScrollIndicator = true
        
        //6.設(shè)置滾動(dòng)條到上下左右的邊距
        //注意:這個(gè)結(jié)構(gòu)體中的值只有下和右有效赂蠢。下->水平方向的滾動(dòng)條。右->垂直方向的滾動(dòng)條
        scrollView.scrollIndicatorInsets = UIEdgeInsetsMake(0, 0, 100, 10)
        
        //7.設(shè)置滾動(dòng)條的風(fēng)格
        scrollView.indicatorStyle = .Black
        
        //8.滾動(dòng)到指定區(qū)域(讓指定區(qū)域可見)
        //scrollView.scrollRectToVisible(CGRectMake(1000, 100, 100, 100), animated: true)
        
        
        //9.是否滾動(dòng)到頂部(點(diǎn)擊狀態(tài)欄是否可以自動(dòng)回到頂部)
        scrollView.scrollsToTop = true
        

確定縮放對(duì)象


        //7.通過帶動(dòng)畫效果的方式設(shè)置偏移量
        //self.scrollView.setContentOffset(CGPointMake(self.scrollView.bounds.width, 0), animated: true)
        
        //8.設(shè)置縮放倍數(shù)
        self.scrollView.maximumZoomScale = 3
        self.scrollView.minimumZoomScale = 0.5

    //2.告訴UIScrollView在縮放的時(shí)候砰蠢,對(duì)哪個(gè)視圖進(jìn)行縮放(設(shè)置縮放對(duì)象)
    func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView?{
    
        return scrollView.subviews[0]
    }
    
    

以下是代理



        //6.設(shè)置代理
        self.scrollView.delegate = self

extension ViewController: UIScrollViewDelegate{

    //============滾動(dòng)相關(guān)============
    //1.在scrollView滾動(dòng)的時(shí)候?qū)崟r(shí)調(diào)用
    func scrollViewDidScroll(scrollView: UIScrollView){
    
        print("正在滾動(dòng)")
        print(scrollView.contentOffset)
    }
    
    //2.在scrollView將要開始拖動(dòng)的時(shí)候調(diào)用
    func scrollViewWillBeginDragging(scrollView: UIScrollView){
    
        print("將要開始拖拽")
    }
    
    //3.停止減速的時(shí)候會(huì)調(diào)用(實(shí)質(zhì)就是停止?jié)L動(dòng)的時(shí)候會(huì)調(diào)用)
    func scrollViewDidEndDecelerating(scrollView: UIScrollView){
    
        print("停止減速")
    }
    
    
    //4.將要停止拖拽的時(shí)候調(diào)用(手將要松開的時(shí)候,不代表停止?jié)L動(dòng))
    //參數(shù)2:手松開時(shí)候在x方向上和在y方向的速度
    //參數(shù)3:預(yù)判的滾動(dòng)停止時(shí)候的偏移量
    func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>){
    
        print("將要停止拖拽")
        print(targetContentOffset)
    }
    
    
    //5.手將要停止拖拽的時(shí)候調(diào)用
    func scrollViewWillBeginDecelerating(scrollView: UIScrollView){
    
        print("將要開始減速")
    }
    
    //6.已經(jīng)停止?jié)L動(dòng)動(dòng)畫的時(shí)候調(diào)用
    //只有在通過setContentOffset的方法使用動(dòng)畫效果讓scrollView滾動(dòng)唉铜,在停止?jié)L動(dòng)的時(shí)候才會(huì)調(diào)用這個(gè)方法
    func scrollViewDidEndScrollingAnimation(scrollView: UIScrollView){
        
        print("停止?jié)L動(dòng)動(dòng)畫")
    }
    
    
    //7.只有在通過點(diǎn)擊狀態(tài)欄自動(dòng)滾動(dòng)到頂部的時(shí)候才會(huì)調(diào)用
    func scrollViewDidScrollToTop(scrollView: UIScrollView){
    
        print("已經(jīng)滾動(dòng)到頂部")
    }
    
    
    //============縮放相關(guān)=============
    //UIScrollView已經(jīng)實(shí)現(xiàn)了縮放功能
    //想要讓UIScrollView上的內(nèi)容進(jìn)行縮放必須滿足以下條件:
    //a.設(shè)置縮放的最大倍數(shù)和最小倍數(shù)(默認(rèn)都是1)
    //b.通過協(xié)議方法告訴UIScrollView縮放對(duì)象
    //1.正在縮放的時(shí)候會(huì)實(shí)時(shí)調(diào)用
    func scrollViewDidZoom(scrollView: UIScrollView){
    
        print("正在縮放")
    }

一般UIScrollView結(jié)合前面滾動(dòng)停止的函數(shù)獲取當(dāng)前是第幾頁(yè)(講偏移的x值除以其寬度)

//MARK: - ScrollView Delegate
extension ViewController: UIScrollViewDelegate{

    //停止?jié)L動(dòng)
    func scrollViewDidEndDecelerating(scrollView: UIScrollView){
    
        //拿到當(dāng)前是第幾頁(yè)
        let page = scrollView.contentOffset.x / scrollView.bounds.width
        
        //更新pageControl
        self.pageControl?.currentPage = Int(page)
    }
}

//MARK: - PageControl
extension ViewController{

    func creatPageControl() {
        
        //1.創(chuàng)建UIPageControl對(duì)象
        self.pageControl = UIPageControl.init(frame: CGRectMake(0, 230, Screen_W, 20))
        //2.添加到界面上
        self.view.addSubview(self.pageControl!)
        //3.設(shè)置背景顏色
        //self.pageControl?.backgroundColor = UIColor.yellowColor()
        
        //4.核心屬性
        //設(shè)置總的頁(yè)數(shù)
        self.pageControl?.numberOfPages = self.scrollView.subviews.count
        //設(shè)置當(dāng)前頁(yè)(從0開始)
        self.pageControl?.currentPage = 0
        
        //5.設(shè)置圓點(diǎn)的顏色
        self.pageControl?.pageIndicatorTintColor = UIColor.yellowColor()
        self.pageControl?.currentPageIndicatorTintColor = UIColor.redColor()
        
        //6.添加事件
        self.pageControl?.addTarget(self, action: "pageControlAction:", forControlEvents: .ValueChanged)
    }
    
    //值改變事件發(fā)生調(diào)用的方法
    func pageControlAction(pageControl:UIPageControl) {
        
        let offsetX = CGFloat(pageControl.currentPage) * Screen_W
        self.scrollView.setContentOffset(CGPointMake(offsetX, 0), animated: true)
    }
}

day two

這里主要講的是UITableView的一些用法
主要是兩個(gè)
1.方法
設(shè)置行高
self.tableView.rowHeight = 150
頭文件頭像
self.tableView.tableHeaderView = imageView
分割線
tableView.separatorInset = UIEdgeInsetsMake(0, 10, 0, 10)

    //設(shè)置分割線的風(fēng)格
    //None -> 沒有分割線
    tableView.separatorStyle = .SingleLine 
    
    //設(shè)置分割線的顏色
    tableView.separatorColor = UIColor.redColor()

2.代理的一些方法
主要有兩個(gè)代理
1.DataSource
就是對(duì)行數(shù)和組數(shù)的設(shè)定 還有行數(shù)里面添加的內(nèi)容圖片
對(duì)行數(shù)有多少行設(shè)定
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
對(duì)組數(shù)有多少組設(shè)定
func numberOfSectionsInTableView(tableView: UITableView) -> Int
創(chuàng)建cell 判斷cell是否有重復(fù)的 用id進(jìn)行判斷 然后在對(duì)數(shù)據(jù)進(jìn)行刷新
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
設(shè)置每個(gè)分組的題目
func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String?
這里是設(shè)置索引欄
就是右邊出現(xiàn)一個(gè)索引 然后點(diǎn)擊相應(yīng)的地方進(jìn)行跳轉(zhuǎn)
func sectionIndexTitlesForTableView(tableView: UITableView) -> [String]?
2.Delegate
就是對(duì)組數(shù)和行數(shù)的高度設(shè)定

設(shè)定cell的高度
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat

設(shè)置header和footer的高度

    func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        
        return 50
    }
    
    func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
        
        return 0
    }

設(shè)定每個(gè)分組的headerView的大小坐標(biāo)顏色
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?

注意:
這里還有一個(gè)重要的方法
選擇相應(yīng)的行數(shù)或者組數(shù)進(jìn)行跳轉(zhuǎn) 跳轉(zhuǎn)到下一個(gè)頁(yè)面
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末台舱,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子潭流,更是在濱河造成了極大的恐慌竞惋,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,640評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灰嫉,死亡現(xiàn)場(chǎng)離奇詭異拆宛,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)讼撒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門浑厚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來股耽,“玉大人,你說我怎么就攤上這事钳幅∥矧” “怎么了?”我有些...
    開封第一講書人閱讀 165,011評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵敢艰,是天一觀的道長(zhǎng)诬乞。 經(jīng)常有香客問我,道長(zhǎng)钠导,這世上最難降的妖魔是什么震嫉? 我笑而不...
    開封第一講書人閱讀 58,755評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮牡属,結(jié)果婚禮上票堵,老公的妹妹穿的比我還像新娘。我一直安慰自己湃望,他們只是感情好换衬,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著证芭,像睡著了一般瞳浦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上废士,一...
    開封第一講書人閱讀 51,610評(píng)論 1 305
  • 那天叫潦,我揣著相機(jī)與錄音,去河邊找鬼官硝。 笑死矗蕊,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的氢架。 我是一名探鬼主播傻咖,決...
    沈念sama閱讀 40,352評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼岖研!你這毒婦竟也來了卿操?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,257評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤孙援,失蹤者是張志新(化名)和其女友劉穎害淤,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拓售,經(jīng)...
    沈念sama閱讀 45,717評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡窥摄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了础淤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片崭放。...
    茶點(diǎn)故事閱讀 40,021評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡哨苛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出莹菱,到底是詐尸還是另有隱情移国,我是刑警寧澤,帶...
    沈念sama閱讀 35,735評(píng)論 5 346
  • 正文 年R本政府宣布道伟,位于F島的核電站迹缀,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蜜徽。R本人自食惡果不足惜祝懂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拘鞋。 院中可真熱鬧砚蓬,春花似錦、人聲如沸盆色。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)隔躲。三九已至摩梧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間宣旱,已是汗流浹背仅父。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留浑吟,地道東北人笙纤。 一個(gè)月前我還...
    沈念sama閱讀 48,224評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像组力,于是被迫代替她去往敵國(guó)和親省容。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 概述在iOS開發(fā)中UITableView可以說是使用最廣泛的控件燎字,我們平時(shí)使用的軟件中到處都可以看到它的影子蜕提,類似...
    liudhkk閱讀 9,047評(píng)論 3 38
  • 1.badgeVaule氣泡提示 2.git終端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夾內(nèi)容...
    i得深刻方得S閱讀 4,667評(píng)論 1 9
  • *7月8日上午 N:Block :跟一個(gè)函數(shù)塊差不多贝淤,會(huì)對(duì)里面所有的內(nèi)容的引用計(jì)數(shù)+1妓忍,想要解決就用__block...
    炙冰閱讀 2,488評(píng)論 1 14
  • #pragma mark someValueAboutTableView 1.tableView的樣式:UITab...
    瀟巖閱讀 906評(píng)論 0 0
  • 感覺曾經(jīng)高中和大學(xué)時(shí)的自己并不成熟驻龟,沒有經(jīng)濟(jì)基礎(chǔ)党觅,沒有生活閱歷擦俐,沒有明確的方向和目標(biāo)佣蓉,沒有保護(hù)身邊重要人的能力酸舍,沒...
    X_V_V_閱讀 232評(píng)論 0 1