1、tableView也是滾動(dòng)視圖1> 禁用點(diǎn)擊狀態(tài)欄回到表格視圖的頂部
self.tableView.scrollsToTop = false
2> 設(shè)置滑動(dòng)時(shí)隱藏導(dǎo)航欄? ??
? ? self.navigationController?.hidesBarsOnSwipe = true?
3>工廠設(shè)計(jì)模式:使用類方法將一些基礎(chǔ)的UI控件的屬性總結(jié)歸納起來,方便統(tǒng)一修改 類方法實(shí)質(zhì)上-->是在實(shí)例方法前加上static或者class關(guān)鍵字example:?
static func createButtonWith(frame: CGRect,type: UIButtonType,title: String,titleColor: UIColor,imageName: String,target: AnyObject?,action: Selector,backgroundImageName: String) ->UIButton {? ? ? ? ? ? ? ? let button = UIButton(type: type)? ? ? ? button.frame = frame? ? ? ? button.setTitle(title, forState: UIControlState.Normal)? ? ? ? button.setTitleColor(titleColor, forState: UIControlState.Normal)??
?4>設(shè)置圖片? ? ?
? button.setImage(UIImage(named: imageName), forState: UIControlState.Normal)? ? ? ??
5>設(shè)置背景圖片? ? ??
button.setBackgroundImage(UIImage(named: backgroundImageName), forState: UIControlState.Normal)? ? ?
6>添加響應(yīng)事件? ? ? ?
button.addTarget(target, action: action, forControlEvents: UIControlEvents.TouchUpInside) ??
7> 修改狀態(tài)欄的顏色,需要結(jié)合修改plist文件來做,這種方式適合全局修改狀態(tài)欄的顏色
UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent
LightContent白色 ?
8> 修改plist文件中:
View controller-based status bar appearance
9>設(shè)置導(dǎo)航不透明? ? ??
? self.navigationController?.navigationBar.translucent = false
tabBarItem有兩個(gè)屬性? Image? 和selectedImage??
10> ?設(shè)置選中時(shí)標(biāo)題的顏色《TabBarItem》
UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.xxxx], forState: .(枚舉值))
實(shí)現(xiàn)界面搭建:1.創(chuàng)建UI,2.請(qǐng)求數(shù)據(jù).3.返回去刷新UI數(shù)據(jù)請(qǐng)求步驟:1、創(chuàng)建請(qǐng)求管理類
?let manager = AFHTTPSessionManager() ? ? ?
? 2、直接使用get請(qǐng)求方式? ??
? ? ? ? ? manager.GET("http://open4.bantangapp.com/recommend/index?client_id=bt_app_android&client_secret=ffcda7a1c4ff338e05c42e7972ba7b8d&page=\(self.page)&pagesize=20", parameters: nil, success: { (dataTask: NSURLSessionDataTask?, responseObject: AnyObject?) -> Void in? ? ? ? ? ? ? ??
3、解析數(shù)據(jù)? ? ??
let dic = responseObject?.objectForKey("data")? ? ? ? ? ? let array = dic?.objectForKey("topic")? ? ? ?
注意:利用KVC來進(jìn)行屬性賦值(字典轉(zhuǎn)模型model) ??
? ?for i in 0..間單來說就是方便快捷
取消多余的線條
self.tableView.tableFooterView = UIView()
Carousel通過封裝好的代碼,實(shí)現(xiàn)廣告輪播:
self.cyclePlaying = Carousel(frame: CGRectMake(0,0,screenWidth,screenHeight / 3))
1、設(shè)置是否需要pageControl
self.cyclePlaying.needPageControl = true
2、設(shè)置是否需要無限輪播
self.cyclePlaying.infiniteLoop = true
3、設(shè)置pageControl的位置
self.cyclePlaying.pageControlPositionType = PAGE_CONTROL_POSITION_TYPE_MIDDLE
4、設(shè)置圖片數(shù)組,使用本地圖片
self.cyclePlaying.imageArray = ["shili8","shili2","shili10","shili13","shili24"]
Carousel簡(jiǎn)介:通用輪播控件,
* 1.內(nèi)嵌了pageControl,可以用needPageControl是否顯示,默認(rèn)顯示(圖片個(gè)數(shù)大于1);
* 2.支持圖片數(shù)組與圖片地址數(shù)組,采用sdwebImage庫做圖片的下載與緩存;
* 3.支持輪播自播放的暫停與開始;
* 4.只支持橫向輪播;
* 5.要使用該控件,必須在工程中添加對(duì)sdwebImage的引用,切記?。?!
設(shè)計(jì)基本思路:
* 輪播模式a:collectionview有無限個(gè)item,每次item顯示的時(shí)候都去取對(duì)應(yīng)正確的索引圖片。
* 輪播模式b:collectionview的item個(gè)數(shù)為實(shí)際圖片的個(gè)數(shù)。圖片初始化后在整個(gè)scrollView上的顯示情況為item0(pic5)、item1(pic0)、item2(pic1)、
*? ? ? ? ? item3(pic2)、item4(pic3)、item5(pic4)。這么顯示的原因是:在初始化圖片后,會(huì)讓collectionview滾動(dòng)到item1的位置上,這樣左滑就可以滑
*? ? ? ? ? 動(dòng)到最后一張圖片了,右滑也可以滑動(dòng)到第二張圖片。輪播的規(guī)則: 右滑--當(dāng)collectionview從item1 滾動(dòng)到item2的位置后,這個(gè)時(shí)候做一個(gè)無動(dòng)畫
*? ? ? ? ? 滾動(dòng),讓位置繼續(xù)滾回到item1,然后下次右滑的時(shí)候依然按照這個(gè)流程走,這樣就可以保證在從最后一張滑動(dòng)到第一張的時(shí)候,滾動(dòng)動(dòng)畫的正常。左滑同右
*? ? ? ? ? 滑,只是方向變換一下。
* 1.當(dāng)圖片個(gè)數(shù)為1的時(shí)候,不能自動(dòng)輪播
* 2.當(dāng)圖片個(gè)數(shù)為2的時(shí)候,采用輪播模式a。
* 3.當(dāng)圖片個(gè)數(shù)大于2張的時(shí)候,采用輪播模式b
注冊(cè)cell,UINib來注冊(cè)自定義的xib,nibName是自定義的類名
let nib = UINib(nibName: "HomeCell", bundle: nil)
self.tableView.registerNib(nib, forCellReuseIdentifier: "homeCell")