iOS流布局UICollectionView系列二——UICollectionView的代理方法 一、引言 在上一篇博客中,介绍了最基本的UICollectionView的使用和其中我们常用的属性和方法...,也介绍了瀑布流布局的过程与思路,这篇博客是上一篇的补充,来讨论关于UICollectionView的代理方法的使用。...博客地址: UICollectionView的简介和简单使用:http://my.oschina.net/u/2340880/blog/522613 二、UICollectionViewDataSource...下面的方法是可选实现的: 虽然这个方法是可选的,一般我们都会去实现,设置分区数 - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView...indexPath withSender:(id)sender{ NSLog(@"%@",NSStringFromSelector(action)); } collectionView进行重新布局时调用的方法
iOS流布局UICollectionView系列五——圆环布局的实现 一、引言 前边的几篇博客,我们了解了UICollectionView的基本用法以及一些扩展,在不定高的瀑布流布局中...这种布局方式在apple的官方文档中也有介绍,是UICollectionView的一个应用示例。...类,系统为我们实现好的一个布局方案。...,来进行圆环布局的设置,首先是prepareLayout,为布局做一些准备工作,使用collectionViewContentSize来设置内容的区域大小,最后使用layoutAttributesForElementsInRect...,我们就实现哦圆环布局,随着item的多少,布局会自动调整,如果不是UICollectionView的功劳,实现这样的功能,我们可能要写上一阵子了^_^。
iOS流布局UICollectionView系列七——三维中的球型布局 一、引言 通过6篇的博客,从平面上最简单的规则摆放的布局,到不规则的瀑布流布局,再到平面中的圆环布局,我们突破了线性布局的局限...,在后面,我们将布局扩展到了空间,在Z轴上进行了平移,我们实现了一个类似UIPickerView的布局模型,其实我们还可以再进一步,类比于平面布局,picKerView只是线性排列布局在空间上的旋转与平移...,这次,我们更加充分了利用一下空间的尺寸,来设计一个圆球的布局模型。...以下是前几篇博客地址: 1.初识与简单实用UICollectionView:http://my.oschina.net/u/2340880/blog/522613 2.UICollectionView的代理方法...滑动屏幕,这个圆球是可以进行滚动的。 TIP:这里我们只平均分配了四个方向上的布局,如果item更加小也更加多,我们可以分配到更多的方向上,使球体更加充实。
iOS流布局UICollectionView系列一——初识与简单使用UICollectionView 一、简介 UICollectionView是iOS6之后引入的一个新的UI控件,它和...简单来说,UICollectionView是比UITbleView更加强大的一个UI控件,有如下几个方面: 1、支持水平和垂直两种方向的布局 2、通过layout配置方式进行布局 3、类似于TableView...中的cell特性外,CollectionView中的Item大小和位置可以自由定义 4、通过layout布局回调的代理方法,可以动态的定制每个item的大小和collection的大体布局属性 5、更加强大一点...同样,如果内容的大小超出一屏,和tableView类似是可以进行视图滑动的。...则会在一列充满后,进行第二列的布局,这种方式也被称为流式布局 三、UICollectionView中的常用方法和属性 //通过一个布局策略初识化CollectionView - (instancetype
iOS流布局UICollectionView系列三——使用FlowLayout进行更灵活布局 一、引言 前面的博客介绍了UICollectionView的相关方法和其协议中的方法,但对布局的管理类...二、将九宫格式的布局进行升级 在第一篇博客中,通过UICollectionView,我们很轻松的完成了一个九宫格的布局,但是如此中规中矩的布局方式,有时候并不能满足我们的需求,有时我们需要每一个...现在的布局效果是不是炫酷了许多。.../垂直布局 }; 设置头视图尺寸大小 @property (nonatomic) CGSize headerReferenceSize; 设置尾视图尺寸大小 @property (nonatomic)...:(NSInteger)section; 动态设置每行的间距大小 - (CGFloat)collectionView:(UICollectionView *)collectionView layout:
UICollectionViewCell是单元格类,它的布局是由UICollectionViewLayout类定义的,它是一个抽象类。...UICollectionViewFlowLayout类是UICollectionViewLayout类的子类,对于复杂的布局,可以自定义UICollectionViewLayout类。...设置每个单元格的大小:itemSize。 设置整个collectionView的内边距:sectionInset,类型是UIEdgeInsets结构体。...#####UICollectionViewDelegateFlowLayout提供的一些方法 //动态设置每个Item的尺寸大小 - (CGSize)collectionView:(UICollectionView...insetForSectionAtIndex:(NSInteger)section{ } 复制代码 //动态设置每行的间距大小 - (CGFloat)collectionView:(UICollectionView
UICollectionView 是在UITbableView 之后出现的一种方便列布局的试图控件。...UICollectionView 的宽度 - 可容纳的item的宽度之和 再平分之后的距离就是每个Item之间的间距。 ?...动态布局.gif 主要实现的过程用到了 一些新的collection view方法: beginInteractiveMovementForItemAtIndexPath(indexPath: NSIndexPath...—————— 瀑布流可以在保证图片原始比例的情况下,灵活的展现内容,相对于传统的使用相同大小的网格展现大量图片,效果上要好上很多,而实现瀑布流的方式有很多种,网上比较流行的有三种实现方式。...使用UICollectionView,UICollectionView在iOS6中第一次被介绍,它与UITableView有许多相似点,但它多了一个布局类,而实现瀑布流,就与这个布局类有关。
上周我分享了一篇关于 UICollectionView 自定义布局实现 Cover Flow 的文章(文章直通车),这也是我分享的关于 UICollectionView 系列的第四篇文章了,那今天我还是继续给大家带来...在接下来的内容中,你将会学到以下知识点: 1.如何在 UICollectionView 中创建 Decoration View2.自定义布局属性,计算 section 的背景图位置和大小3.实现 UICollectionView...计算背景图布局属性 为了实现这个书架分层的样式,我们需要为每个 section 设置一个背景图,如: 但是由于每个 section 的坐标位置是不固定的,于是我们就需要在准备阶段将所有 section...的位置和大小计算完毕,可以在 UICollectionViewLayout 的 prepare() 方法中进行计算,相关逻辑我已经在代码中注明,代码如下: override func prepare(...老样子,按照国际惯例,,最后附上项目工程地址: https://github.com/ShenJieSuzhou/SwiftScrollBanner
做silvelight也有一段时间了,相册、游戏,刚刚完成的showcase这个小程序算是一个阶段了。这里就以showcase这个项目来做一下CaseStudy。...布局篇-如何做一个自适应窗口大小的布局 Canvas是对其子控件绝对定位的子控件需要设置宽高。...Grid而是对其子控件设置上下左右边距的子控件不一定需要设置宽高直接用Auto属性即可大小受父控件影响。 了解了特性及可以开始制作了。...首先先从最外层的UserControl做起,在这里给他一个固定的宽高。这个宽高在发布的时候是可以改变的。主要是LayoutRoot这一层。 LayoutRoot的控件为Grid。...这样他的大小就由silverlight程序大小的本事决定了。 最重要的的是LayoutRoot内部的子控件是要设置了边距也都会自适应。 这里来具体的看一下例子。
UICollectionView 1.必须要设置布局参数 2.注册cell 用法类似于UITableView 类。自动实现重用,必须注册初始化。...(用作背景展示) 一、UICollectionViewLayout UICollectionView的精髓 Layout决定了UICollectionView是如何显示在界面上的。...; // 定义每一个item的大小。...UICollectionViewLayout的功能为向UICollectionView提供布局信息....如果YES则在边界变化(一般是scroll到其他地方)时,将重新计算需要的布局信息。
装饰视图 这是每个section的背景,比如iBooks中的书架就是这个 不管一个UICollectionView的布局如何变化,这三个部件都是存在的。...再次说明,复杂的UICollectionView绝不止上面的几幅图,关于较复杂的布局和相应的特性,我会在本文稍后和下一篇笔记中进行一些深入。...因此SDK提供给我们的默认的UICollectionViewCell结构上相对比较简单,由下至上: • 首先是cell本身作为容器view • 然后是一个大小自动适应整个cell的backgroundView...• 首先一个重要的属性是itemSize,它定义了每一个item的大小。.../article/eb9f7b6d8a81a5869364e8a6.html UICollectionView不同大小Cell等间距的实现 http://www.th7.cn/Program/IOS/201505
日常开发中最常用的控件莫过于 UITableView 和 UICollectionView,随着应用越来越复杂,以前的 UICollectionViewFlowLayout 布局已经满足不了需求,而自定义布局又过于复杂...,所以在 iOS 13 中 Apple 为 UICollectionView 推出了组合布局 UICollectionViewCompositionalLayout,这对于 UICollectionView...细节.jpg 布局核心 NSCollectionLayoutSize 决定了一个元素的大小。表达一个元素的 Size 有三种方法: fractional:表示一个元素相对于他的父视图的比例。...一般用于自适应大小,会根据自动布局决定元素的大小。...的布局体验,大大拓展了 UICollectionView 的可塑性,甚至从某种程度上来说,UI 开发中的复杂布局已经非它莫属。
使用流式布局 继承 UICollectionViewDataSource,UICollectionViewDelegateFlowLayout 设置 Swift self.collectionView.register...,UICollectionViewDelegate 自定义布局 import UIKit class MainLayout : UICollectionViewLayout { //...内容区域总大小,不是可见区域 override func collectionViewContentSize() -> CGSize { return CGSizeMake(...} return attributesArray } // 这个方法返回每个单元格的位置和大小 override func layoutAttributesForItemAtIndexPath...{ //当前单元格布局属性 let attribute = UICollectionViewLayoutAttributes(forCellWithIndexPath:
说到布局 layout,大家在开发过程中与 UICollectionView 搭配使用最多的 应该就是 UICollectionViewFlowLayout 了,这是 UIKit 提供给开发者最基础的的网格布局...查阅苹果的文档可以得知,UICollectionView 的布局是抽象类 UICollectionViewLayout 的子类,它定义了 UICollectionView 中每个 item 的布局属性叫做...(arc4random_uniform(150) + 50) 计算和缓存布局属性 在实现该功能之前,我们先了解一下 UICollectionView 的布局过程,它与布局对象之间的关系是一种协作的关系,...当 UICollectionView 需要一些布局信息的时候,它会去调用布局对象的一些函数,这些函数的执行是有一定的次序的,如图所示: 所以我们继承自 UICollectionViewLayout 的子类必须要实现以下方法...: 好了, 利用 UICollectionView 控件与自定义布局实现瀑布流的内容到此就结束了,最后附上项目的源码地址: https://github.com/ShenJieSuzhou/SwiftScrollBanner
解决方法 在 activity 内重写getResources方法(Fragment中的界面也会生效),如此在 xml 和 java 代码使用 sp 字体单位都是正常的。...网上很多地方写着使用config.setToDefaults();,实际上除了影响 app 内字体大小,还会影响很多地方的属性值。
目前支持竖向瀑布流(item等宽不等高、支持头脚视图)、水平瀑布流(item等高不等宽 不支持头脚视图)、竖向瀑布流( item等高不等宽、支持头脚视图)三种样式的瀑布流布局。...前言 :近几个月一直在忙公司的ChinaDaily和国务院项目,没有抽出时间来写简书,现在终于算是告一段落了,抽出时间来更一篇 实现:主要是重写父类的几个涉及布局属性的方法,在对应的布局属性方法中根据需求自定义视图布局属性信息...详情看示例 /** 初始化 生成每个视图的布局信息*/ -(void)prepareLayout; /** 决定一段区域所有cell和头尾视图的布局属性*/ -(NSArray<UICollectionViewLayoutAttributes...*/ @property (nonatomic, assign) WSLFlowLayoutStyle flowLayoutStyle; @end 初始化仅三行代码,只需设置代理和样式,item的大小...、头脚视图的大小、行列数以及间距都可以在对应样式的代理方法中自定义,然后设置为UICollectionView的自动流水布局样式,并结合UICollectionView的用法使用,详情看示例 WSLWaterFlowLayout
目前支持竖向瀑布流(item等宽不等高、支持头脚视图)、水平瀑布流(item等高不等宽 不支持头脚视图)、竖向瀑布流( item等高不等宽、支持头脚视图)三种样式的瀑布流布局。...前言 :近几个月一直在忙公司的ChinaDaily和国务院项目,没有抽出时间来写简书,现在终于算是告一段落了,抽出时间来更一篇 实现:主要是重写父类的几个涉及布局属性的方法,在对应的布局属性方法中根据需求自定义视图布局属性信息...详情看示例 /** 初始化 生成每个视图的布局信息*/ -(void)prepareLayout; /** 决定一段区域所有cell和头尾视图的布局属性*/ -(NSArray<UICollectionViewLayoutAttributes...瀑布流样式*/ @property (nonatomic, assign) WSLFlowLayoutStyle flowLayoutStyle; @end 初始化仅三行代码,只需设置代理和样式,item的大小...、头脚视图的大小、行列数以及间距都可以在对应样式的代理方法中自定义,然后设置为UICollectionView的自动流水布局样式,并结合UICollectionView的用法使用,详情看示例 WSLWaterFlowLayout
contentSize 是指 contentView 的大小。它一般超过屏幕大小,是整个 UIScrollView 实际内容的大小。...比如一张图片有四个屏幕之大,我们在缩放的时候只能看到其 1/4 的内容,那么它的 contentSize 就是四个屏幕合起来的尺寸大小。...UICollectionViewDelegateFlowLayout 用来处理 UICollectionView 的布局及其行为。...比如具体 item 的尺寸大小, item 之间的间距,header 和 footer 的大小和间距,以及 UICollectionView 的滚动方向。...该方法发生在 UICollectionView 数据准备好,但界面还未布局之时。它用于计算各种布局信息,并设定每个 item 的相关属性。
写在开头 大家早上好,今天我又给大家带来了一篇关于 UICollectionView 系列的文章,在上一篇文章中,我们实现了一个酷炫的瀑布流布局,带大家初步的了解了在 UICollectionView...但是上一篇中实现的自定义布局稍显简单,只能说是比较粗略的计算了下布局各个 item 的位置,搞明白了继承自 UICollectionFlowLayout 子类它需要重载的方法的意义,那么今天这篇文章我们就来实现一个更加复杂的自定义布局...首先大先看下 Cover Flow 的效果图,如下: 思路分析 闲话少说,直接进入正题,通过上面的效果图,我们可以分析到得出 Cover Flow 布局具有以下这些特性: UICollectionView...首先,要实现 UICollectionView 只支持横向滚动,很简单,仅需要设置 UICollectionFlowLayout 布局对象中的 scrollDirection 为 horizontal...教程系列的第四篇,接下来我还会继续更新;如果大家有什么疑问,可以与我交流,也欢迎大家来纠错,老样子,按照国际惯例,最后附上项目工程地址: https://github.com/ShenJieSuzhou
我们都应该知道UICollectionView我们要想自定义一些东西或者布局几乎都是通过Layout下手的,那我们要给它设置组背景色和组圆角是不是也在这里进行呢?...重点 ---- 在我们写瀑布流或者别的一些布局的时候,我们都是在哪里重写的?...,y的一样,需要你按照自己项目的实际需求去处理 sectionFrame.size.width = self.collectionView!..../// 添加组圆角的大小 var sectionCornerRadii:CGSize?...然后上面代码里面的一些宏定义比如identify还有圆角大小等等这些就根据自己的需求去写吧。
领取专属 10元无门槛券
手把手带您无忧上云