第三方庫的一些知識(shí)與應(yīng)用

第三方庫的一些知識(shí)與應(yīng)用

一 設(shè)置網(wǎng)絡(luò)請(qǐng)求活動(dòng)指示器(就是每當(dāng)連網(wǎng)請(qǐng)求數(shù)據(jù)的時(shí)候彈出來的那個(gè)小菊花圖標(biāo))
聲明hud的屬性

var hud:MBProgressHUD!

1.設(shè)置相應(yīng)小菊花文字 顏色 背景顏色 等的屬性

 //網(wǎng)絡(luò)活動(dòng)指示器 在實(shí)際使用的時(shí)候 在所有控件之后進(jìn)行創(chuàng)建 并且添加到self.view上 否則會(huì)被覆蓋
        
       self.hud = MBProgressHUD(view: self.view)```
       
3.開始請(qǐng)求網(wǎng)絡(luò)數(shù)據(jù)
func dataRequestWithPost(){
    
    //
    
    //在開始請(qǐng)求數(shù)據(jù)的時(shí)候顯示網(wǎng)絡(luò)活動(dòng)指示器
    self.hud.show(true)
    
    let manager = AFHTTPSessionManager()
    
    manager.responseSerializer.acceptableContentTypes = NSSet(object: "text/html") as! Set<String>
    
    //設(shè)置請(qǐng)求頭
    //apls

// manager.requestSerializer.setValue(<#T##value: String!##String!#>, forHTTPHeaderField: <#T##String!#>)

    manager.POST("http://d.yixincao.com/interface/getdata.php?act=list&type=nuanwen&page=1", parameters: nil, success: { (dataTask, responseObject) -> Void in
        
        print("請(qǐng)求成功:\(responseObject)")
        
        //在數(shù)據(jù)請(qǐng)求完成之后隱藏活動(dòng)指示器
        self.hud.hide(true)
        }) { (dataTask, error) -> Void in
            
            print("請(qǐng)求失敗:\(error)")
            
            //蘋果審核規(guī)定 不管你的網(wǎng)絡(luò)請(qǐng)求時(shí)成功還是失敗 網(wǎng)絡(luò)活動(dòng)指示器不能沒完沒了的轉(zhuǎn)
            self.hud.hide(true)
    }
    
}
二1oc中插入swift 2swift中插入oc
1.建立一個(gè)Swift文件 然后彈出一個(gè)讓你是否建立橋文件的窗口 點(diǎn)右邊的確認(rèn)就行 然后再build setting中 查詢model 然后再packaging中改名字 然后照著Swift Compiler 中的Header Name的打一遍到m文件中
2.建立一個(gè)橋文件xxx_Briding_Header.h 在其中添加你需要倒入的oc的文件的名字 然后再build setting 中查詢bri 然后再briding Header中添加地址$(SRCROOT)/oc文件名 
三 網(wǎng)絡(luò)請(qǐng)求(相當(dāng)于前面的getnetdata)
1.網(wǎng)絡(luò)請(qǐng)求有兩種 get post 
2.這里講的是引入第三方庫來解決這個(gè)問題  這里注意的是parameters那里是否是nil 就看get那里是否有參數(shù) 如果沒有就nil 有就用dic這種傳參
func dataRequestWithGet2() {
    //創(chuàng)建請(qǐng)求管理類
    let manager = AFHTTPSessionManager()
    
    //攜帶參數(shù)眠冈,以字典的方式攜帶參數(shù)彼水,更符合實(shí)際項(xiàng)目中傳參的方式县遣,根據(jù)接口文檔中的要求來做
    //參數(shù)中currency和page是后臺(tái)要求的字段泛源,對(duì)應(yīng)的value值就是需要傳入的參數(shù)
    let dic = ["currency": "rmb","page": "1"]
    
    //get請(qǐng)求一般用于獲取數(shù)據(jù)诺核,post請(qǐng)求一般用于更改或者添加數(shù)據(jù)
    manager.GET("http://iappfree.candou.com:8080/free/applications/limited", parameters: dic, success: { (dataTask, responseObject) in
        
        
        print("請(qǐng)求成功:\(responseObject)")
        
        
        }) { (dataTask, error) in
            
            print("請(qǐng)求失斉凇:\(error)")
    }
    
}
以上如果出現(xiàn)錯(cuò)誤 就用這個(gè)試試
    //"Request failed: unacceptable content-type: text/html"
    //content-type在默認(rèn)情況下是application/json格式的,如果是其他任何格式的話祝钢,都需要手動(dòng)進(jìn)行設(shè)置,表示數(shù)據(jù)響應(yīng)的格式
    manager.responseSerializer.acceptableContentTypes = NSSet(object: "text/html") as! Set<String>
這里是手勢(shì)滑動(dòng)時(shí)滑條跟著移動(dòng)
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
    let index = scrollView.contentOffset.x / screenW
    //獲取對(duì)應(yīng)的按鈕
    let btn = self.buttonArray[Int(index)] as! UIButton
    
    for btn in self.buttonArray {
        (btn as! UIButton).selected = false
    }
    
    //設(shè)置選中
    btn.selected = true
    
    UIView.animateWithDuration(0.3) {
        self.lineView.frame = CGRectMake(index * self.screenW / 3, 58, self.screenW / 3, 2)
    }
}
這里是點(diǎn)擊按鈕滑條跟著移動(dòng)
func headerButtonClick(button:UIButton) {
    
    //將已經(jīng)選中的按鈕置為不選中,保證每次只選中一個(gè)按鈕
    for btn in self.buttonArray {
        (btn as! UIButton).selected = false
    }
    
    //設(shè)置選中
    button.selected = true
    
    //指示條跟著移動(dòng)
    UIView.animateWithDuration(0.3) { 
        self.lineView.frame = CGRectMake(CGFloat(button.tag - 10) * self.screenW / 3, 58, self.screenW / 3, 2)
        
    }
    
    //關(guān)聯(lián)scrollView
    //self.scrollView.contentOffset = CGPointMake(CGFloat(button.tag - 10) * screenW, 0)
    //帶有動(dòng)畫
    self.scrollView.setContentOffset(CGPointMake(CGFloat(button.tag - 10) * screenW, 0), animated: true)
}

![屏幕快照 2016-10-17 下午8.37.04.png](/Users/qianfeng1/.Trash/屏幕快照 2016-10-17 下午8.37.04.png)

創(chuàng)建UI 其中設(shè)計(jì)到button和底下的滑動(dòng)條lineView
1.button就是button大小 顏色 點(diǎn)鐘、中和沒點(diǎn)中時(shí)有什么差別 最后把定制好的button循環(huán)模型加入一個(gè)數(shù)組中 用這個(gè)代碼 //將創(chuàng)建的按鈕循環(huán)添加到數(shù)組中
            self.buttonArray.addObject(headerButton)
2.指示條的創(chuàng)建 顏色 位置大小 最后加入到self
3.最后是視圖控制器加入到加入到scrollview中
func createUI() {
    //頭部按鈕
    let titleArray = ["推薦","娛樂","新聞"]
    for i in 0..<titleArray.count {
        let headerButton = UIButton(type: .Custom)
        //設(shè)置frame
        headerButton.frame = CGRectMake(CGFloat(i) * screenW / CGFloat(titleArray.count), 0, screenW / CGFloat(titleArray.count), 60)
        //設(shè)置標(biāo)題
        headerButton.setTitle(titleArray[i], forState: .Normal)
        //設(shè)置未選中的標(biāo)題顏色
        headerButton.setTitleColor(UIColor.lightGrayColor(), forState: .Normal)
        //選中的標(biāo)題顏色
        headerButton.setTitleColor(UIColor.redColor(), forState: .Selected)
        //設(shè)置tag
        headerButton.tag = 10 + i
        //添加響應(yīng)事件
        headerButton.addTarget(self, action:"headerButtonClick:", forControlEvents: .TouchUpInside)
        self.view.addSubview(headerButton)
        
        
        //將創(chuàng)建的按鈕循環(huán)添加到數(shù)組中
        self.buttonArray.addObject(headerButton)
    }
    
    //選中指示條
    lineView = UIView(frame: CGRectMake(0,58,screenW / CGFloat(titleArray.count),2))
    lineView.backgroundColor = UIColor.redColor()
    self.view.addSubview(lineView)
    
    //scrollView
    self.scrollView = UIScrollView(frame: CGRectMake(0,60,screenW,screenH - 60))
    //設(shè)置分頁屬性
    self.scrollView.pagingEnabled = true
    //關(guān)閉scrolView的彈跳效果
    self.scrollView.bounces = false
    //設(shè)置代理
    self.scrollView.delegate = self
    self.view.addSubview(self.scrollView)
    
    
    //設(shè)置contentSize
    //contentSize的高度設(shè)置為0若厚,為了避免在滑動(dòng)scrollView出現(xiàn)不定向偏移的bug
    self.scrollView.contentSize = CGSizeMake(screenW * CGFloat(titleArray.count), 0)
    //如果上面的方式不起作用的話,可以關(guān)閉scrollView的留白
    //self.automaticallyAdjustsScrollViewInsets = false
    
    //實(shí)現(xiàn)滾動(dòng)是框架的核心
    //實(shí)例化子控制器
    let firstVC = FirstViewController()
    firstVC.view.backgroundColor = UIColor.redColor()
    
    let secondVC = SecondViewController()
    secondVC.view.backgroundColor = UIColor.blueColor()
    
    let thirdVC = ThirdViewController()
    thirdVC.view.backgroundColor = UIColor.greenColor()
    
    let vcArray = [firstVC,secondVC,thirdVC]
    
    
    for i in 0..<vcArray.count {
        let vc = vcArray[i]
        //設(shè)置vc.view的frame
        vc.view.frame = CGRectMake(CGFloat(i) * screenW, 0, screenW, screenH - 60)
        //將vc.view添加到scrollView之前需要將子控制器作為當(dāng)前控制器的childViewController添加進(jìn)去
        self.addChildViewController(vc)
        self.scrollView.addSubview(vc.view)
    }
    
}
創(chuàng)建UI 其中設(shè)計(jì)到button和底下的滑動(dòng)條lineView
1.button就是button大小 顏色 點(diǎn)鐘拦英、中和沒點(diǎn)中時(shí)有什么差別 最后把定制好的button循環(huán)模型加入一個(gè)數(shù)組中 用這個(gè)代碼 //將創(chuàng)建的按鈕循環(huán)添加到數(shù)組中
            self.buttonArray.addObject(headerButton)
2.指示條的創(chuàng)建 顏色 位置大小 最后加入到self
3.最后是視圖控制器加入到加入到scrollview中
func createUI() {
    //頭部按鈕
    let titleArray = ["推薦","娛樂","新聞"]
    for i in 0..<titleArray.count {
        let headerButton = UIButton(type: .Custom)
        //設(shè)置frame
        headerButton.frame = CGRectMake(CGFloat(i) * screenW / CGFloat(titleArray.count), 0, screenW / CGFloat(titleArray.count), 60)
        //設(shè)置標(biāo)題
        headerButton.setTitle(titleArray[i], forState: .Normal)
        //設(shè)置未選中的標(biāo)題顏色
        headerButton.setTitleColor(UIColor.lightGrayColor(), forState: .Normal)
        //選中的標(biāo)題顏色
        headerButton.setTitleColor(UIColor.redColor(), forState: .Selected)
        //設(shè)置tag
        headerButton.tag = 10 + i
        //添加響應(yīng)事件
        headerButton.addTarget(self, action:"headerButtonClick:", forControlEvents: .TouchUpInside)
        self.view.addSubview(headerButton)
        
        
        //將創(chuàng)建的按鈕循環(huán)添加到數(shù)組中
        self.buttonArray.addObject(headerButton)
    }
    
    //選中指示條
    lineView = UIView(frame: CGRectMake(0,58,screenW / CGFloat(titleArray.count),2))
    lineView.backgroundColor = UIColor.redColor()
    self.view.addSubview(lineView)
    
    //scrollView
    self.scrollView = UIScrollView(frame: CGRectMake(0,60,screenW,screenH - 60))
    //設(shè)置分頁屬性
    self.scrollView.pagingEnabled = true
    //關(guān)閉scrolView的彈跳效果
    self.scrollView.bounces = false
    //設(shè)置代理
    self.scrollView.delegate = self
    self.view.addSubview(self.scrollView)
    
    
    //設(shè)置contentSize
    //contentSize的高度設(shè)置為0,為了避免在滑動(dòng)scrollView出現(xiàn)不定向偏移的bug
    self.scrollView.contentSize = CGSizeMake(screenW * CGFloat(titleArray.count), 0)
    //如果上面的方式不起作用的話,可以關(guān)閉scrollView的留白
    //self.automaticallyAdjustsScrollViewInsets = false
    
    //實(shí)現(xiàn)滾動(dòng)是框架的核心
    //實(shí)例化子控制器
    let firstVC = FirstViewController()
    firstVC.view.backgroundColor = UIColor.redColor()
    
    let secondVC = SecondViewController()
    secondVC.view.backgroundColor = UIColor.blueColor()
    
    let thirdVC = ThirdViewController()
    thirdVC.view.backgroundColor = UIColor.greenColor()
    
    let vcArray = [firstVC,secondVC,thirdVC]
    
    
    for i in 0..<vcArray.count {
        let vc = vcArray[i]
        //設(shè)置vc.view的frame
        vc.view.frame = CGRectMake(CGFloat(i) * screenW, 0, screenW, screenH - 60)
        //將vc.view添加到scrollView之前需要將子控制器作為當(dāng)前控制器的childViewController添加進(jìn)去
        self.addChildViewController(vc)
        self.scrollView.addSubview(vc.view)
    }
    
}
抽屜式 
1.用手往左邊

let leftVC = LeftViewController()
leftVC.view.backgroundColor = UIColor.redColor()

let centerVC = CenterViewController()
let centerNav = UINavigationController(rootViewController: centerVC)
centerVC.view.backgroundColor = UIColor.blueColor()

//實(shí)例化抽屜類
let revealVC = SWRevealViewController(rearViewController: leftVC, frontViewController: centerNav)

//右抽屜
//revealVC.rightViewController =

//設(shè)置打開抽屜的寬度
revealVC.rearViewRevealWidth = 200

self.window?.rootViewController = revealVC

//需要手動(dòng)設(shè)置打開抽屜的方式--注冊(cè)拖動(dòng)效果
centerVC.view.addGestureRecognizer(revealVC.panGestureRecognizer())

2.實(shí)現(xiàn)qq那種效果 顏色可以在第三方庫自己去調(diào)節(jié)

var sideMenu:RESideMenu?
@IBAction func openDrawer(sender: AnyObject) {

if sideMenu == nil {

//添加抽屜中的選項(xiàng)
let item1 = RESideMenuItem(title: "我的收藏", action: { (menu, item) in

print("我的收藏")

//進(jìn)行頁面跳轉(zhuǎn)(push或者present)之前测秸,將menu隱藏掉疤估,否則不能跳轉(zhuǎn)
menu.hide()

})

let item2 = RESideMenuItem(title: "QQ錢包", action: { (menu, item) in
print("QQ錢包")
})

//創(chuàng)建抽屜
sideMenu = RESideMenu(items: [item1,item2])
}

//讓抽屜顯示
sideMenu?.show()

}

3.還有種打開的方式 個(gè)人感覺比較low  不建議使用

//實(shí)例化子控制器
let leftVC = LeftViewController()
leftVC.view.backgroundColor = UIColor.redColor()

let centerVC = CenterViewController()
centerVC.view.backgroundColor = UIColor.blueColor()

//實(shí)例化抽屜類,用于管理leftVC和centerVC
let drawerVC = MMDrawerController(centerViewController: centerVC, leftDrawerViewController: leftVC)
//設(shè)置抽屜打開和關(guān)閉的模式
drawerVC.openDrawerGestureModeMask = MMOpenDrawerGestureMode.All
drawerVC.closeDrawerGestureModeMask = MMCloseDrawerGestureMode.All

//設(shè)置當(dāng)抽屜打開之后的寬度
drawerVC.maximumLeftDrawerWidth = 200

self.window?.rootViewController = drawerVC

上面是手勢(shì)拖動(dòng)改變  下面是button來改變
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末乞封,一起剝皮案震驚了整個(gè)濱河市做裙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌肃晚,老刑警劉巖锚贱,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異关串,居然都是意外死亡拧廊,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門晋修,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吧碾,“玉大人,你說我怎么就攤上這事墓卦【氪海” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵落剪,是天一觀的道長睁本。 經(jīng)常有香客問我,道長忠怖,這世上最難降的妖魔是什么呢堰? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮凡泣,結(jié)果婚禮上枉疼,老公的妹妹穿的比我還像新娘。我一直安慰自己鞋拟,他們只是感情好骂维,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著贺纲,像睡著了一般航闺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哮笆,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天来颤,我揣著相機(jī)與錄音,去河邊找鬼稠肘。 笑死福铅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的项阴。 我是一名探鬼主播滑黔,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼环揽!你這毒婦竟也來了略荡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤歉胶,失蹤者是張志新(化名)和其女友劉穎汛兜,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體通今,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡粥谬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了辫塌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漏策。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖臼氨,靈堂內(nèi)的尸體忽然破棺而出掺喻,到底是詐尸還是另有隱情,我是刑警寧澤储矩,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布感耙,位于F島的核電站,受9級(jí)特大地震影響椰苟,放射性物質(zhì)發(fā)生泄漏抑月。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一舆蝴、第九天 我趴在偏房一處隱蔽的房頂上張望谦絮。 院中可真熱鬧,春花似錦洁仗、人聲如沸层皱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叫胖。三九已至,卻和暖如春她奥,著一層夾襖步出監(jiān)牢的瞬間瓮增,已是汗流浹背怎棱。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留绷跑,地道東北人拳恋。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像砸捏,于是被迫代替她去往敵國和親谬运。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

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

  • 一 設(shè)置網(wǎng)絡(luò)請(qǐng)求活動(dòng)指示器(就是每當(dāng)連網(wǎng)請(qǐng)求數(shù)據(jù)的時(shí)候彈出來的那個(gè)小菊花圖標(biāo)) 聲明hud的屬性 ``` var ...
    saman0閱讀 321評(píng)論 0 1
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫垦藏、插件梆暖、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,059評(píng)論 4 62
  • 一.緯度 由于公司不同時(shí)期側(cè)重發(fā)展方面不同,所以側(cè)重的緯度也會(huì)不一樣〉嗫ィ現(xiàn)階段我們的目的是提高用戶的活躍度。目前...
    JasonStack閱讀 243評(píng)論 0 1
  • 文 / 愛妮小姐 之前說了幾次要去南岳,總是出于各種原因沒有行成。這一次昙篙,托符叔叔...
    愛妮小姐閱讀 2,750評(píng)論 0 9
  • 今天是本學(xué)期期中考試的第一天映屋,共考了三個(gè)年級(jí)棚点,分別是一、二杖虾、六年級(jí)诉儒,全天下來還算順利,從考場布置亏掀,開考,監(jiān)考泛释,收取...
    甲午之印閱讀 95評(píng)論 0 0