1、tableView也是滚动视图1> 禁用点击状态栏回到表格视图的顶部
self.tableView.scrollsToTop = false
2> 设置滑动时隐藏导航栏
self.navigationController?.hidesBarsOnSwipe = true
3>工厂设计模式:使用类方法将一些基础的UI控件的属性总结归纳起来,方便统一修改 类方法实质上-->是在实例方法前加上static或者class关键字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>设置图片
button.setImage(UIImage(named: imageName), forState: UIControlState.Normal)
5>设置背景图片
button.setBackgroundImage(UIImage(named: backgroundImageName), forState: UIControlState.Normal)
6>添加响应事件
button.addTarget(target, action: action, forControlEvents: UIControlEvents.TouchUpInside)
7> 修改状态栏的颜色,需要结合修改plist文件来做,这种方式适合全局修改状态栏的颜色
UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent
LightContent白色
8> 修改plist文件中:
View controller-based status bar appearance
9>设置导航不透明
self.navigationController?.navigationBar.translucent = false
tabBarItem有两个属性 Image 和selectedImage
10> 设置选中时标题的颜色《TabBarItem》
UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.xxxx], forState: .(枚举值))
实现界面搭建:1.创建UI,2.请求数据.3.返回去刷新UI数据请求步骤:1、创建请求管理类
let manager = AFHTTPSessionManager()
2、直接使用get请求方式
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、解析数据
let dic = responseObject?.objectForKey("data") let array = dic?.objectForKey("topic")
注意:利用KVC来进行属性赋值(字典转模型model)
for i in 0..间单来说就是方便快捷
取消多余的线条
self.tableView.tableFooterView = UIView()
Carousel通过封装好的代码,实现广告轮播:
self.cyclePlaying = Carousel(frame: CGRectMake(0,0,screenWidth,screenHeight / 3))
1、设置是否需要pageControl
self.cyclePlaying.needPageControl = true
2、设置是否需要无限轮播
self.cyclePlaying.infiniteLoop = true
3、设置pageControl的位置
self.cyclePlaying.pageControlPositionType = PAGE_CONTROL_POSITION_TYPE_MIDDLE
4、设置图片数组,使用本地图片
self.cyclePlaying.imageArray = ["shili8","shili2","shili10","shili13","shili24"]
Carousel简介:通用轮播控件,
* 1.内嵌了pageControl,可以用needPageControl是否显示,默认显示(图片个数大于1);
* 2.支持图片数组与图片地址数组,采用sdwebImage库做图片的下载与缓存;
* 3.支持轮播自播放的暂停与开始;
* 4.只支持横向轮播;
* 5.要使用该控件,必须在工程中添加对sdwebImage的引用,切记!!!
设计基本思路:
* 轮播模式a:collectionview有无限个item,每次item显示的时候都去取对应正确的索引图片。
* 轮播模式b:collectionview的item个数为实际图片的个数。图片初始化后在整个scrollView上的显示情况为item0(pic5)、item1(pic0)、item2(pic1)、
* item3(pic2)、item4(pic3)、item5(pic4)。这么显示的原因是:在初始化图片后,会让collectionview滚动到item1的位置上,这样左滑就可以滑
* 动到最后一张图片了,右滑也可以滑动到第二张图片。轮播的规则: 右滑--当collectionview从item1 滚动到item2的位置后,这个时候做一个无动画
* 滚动,让位置继续滚回到item1,然后下次右滑的时候依然按照这个流程走,这样就可以保证在从最后一张滑动到第一张的时候,滚动动画的正常。左滑同右
* 滑,只是方向变换一下。
* 1.当图片个数为1的时候,不能自动轮播
* 2.当图片个数为2的时候,采用轮播模式a。
* 3.当图片个数大于2张的时候,采用轮播模式b
注册cell,UINib来注册自定义的xib,nibName是自定义的类名
let nib = UINib(nibName: "HomeCell", bundle: nil)
self.tableView.registerNib(nib, forCellReuseIdentifier: "homeCell")