瀑布流

iOS流布局UICollectionView系列四——自定义FlowLayout进行瀑布流布局

被刻印的时光 ゝ 提交于 2019-12-02 09:10:50
iOS流布局UICollectionView系列四——自定义FlowLayout进行瀑布流布局 一、引言 前几篇博客从UICollectionView的基础应用到设置UICollectionViewFlowLayout更加灵活的进行布局,但都限制在系统为我们准备好的布局框架中,还是有一些局限性,例如,如果我要进行瀑布流似的不定高布局,前面的方法就很难满足我们的需求了,如下: 这种布局无疑在app的应用中更加广泛,商品的展示,书架书目的展示,都会倾向于采用这样的布局方式,当然,通过自定义FlowLayout,我们也很容易实现。 二、进行自定义瀑布流布局 首先,我们新建一个文件继承于UICollectionViewFlowLayout: @interface MyLayout : UICollectionViewFlowLayout 为了演示的方面,这里我不错更多的封装,添加一个属性,直接让外界将item个数传递进来,我们把重心方法重写布局的方法上: @interface MyLayout : UICollectionViewFlowLayout @property(nonatomic,assign)int itemCount; @end 前面说过,UICollectionViewFlowLayout是一个专门用来管理collectionView布局的类,因此

iOS流布局UICollectionView系列二——UICollectionView的代理方法

假装没事ソ 提交于 2019-12-02 09:10:36
iOS流布局UICollectionView系列二——UICollectionView的代理方法 一、引言 在上一篇博客中,介绍了最基本的UICollectionView的使用和其中我们常用的属性和方法,也介绍了瀑布流布局的过程与思路,这篇博客是上一篇的补充,来讨论关于UICollectionView的代理方法的使用。博客地址: UICollectionView的简介和简单使用: http://my.oschina.net/u/2340880/blog/522613 二、UICollectionViewDataSource协议 这个协议主要用于collectionView相关数据的处理,包含方法如下: 首先,有两个方法是我们必须实现的: 设置每个分区的Item个数 - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section; 设置返回每个item的属性 - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath; 下面的方法是可选实现的:

iOS流布局UICollectionView系列五——圆环布局的实现

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-02 09:10:21
iOS流布局UICollectionView系列五——圆环布局的实现 一、引言 前边的几篇博客,我们了解了UICollectionView的基本用法以及一些扩展,在不定高的瀑布流布局中,我们发现,可以通过设置具体的布局属性类UICollectionViewLayoutAttributes来设置设置每个item的具体位置,我们可以再扩展一下,如果位置我们可以自由控制,那个布局我们也可以更加灵活,就比如创建一个如下的circleLayout: 这种布局方式在apple的官方文档中也有介绍,是UICollectionView的一个应用示例。 二、设计一个圆环布局 接着我们以前的想法,依然时候随机颜色的色块来表达我们的item,先自定义一个layout类,这个类继承于UICollectionViewLayout,UICollectionLayout是一个布局抽象基类,我们要使用自定义的布局方式,必须将其子类化,可能你还记得,我们在进行瀑布流布局的时候使用过UICollectionViewFlowLayout类,这个类就是继承于UICollectionViewLayout类,系统为我们实现好的一个布局方案。 @interface MyLayout : UICollectionViewLayout //这个int值存储有多少个item @property(nonatomic,assign

iOS流布局UICollectionView系列三——使用FlowLayout进行更灵活布局

[亡魂溺海] 提交于 2019-12-02 09:10:08
iOS流布局UICollectionView系列三——使用FlowLayout进行更灵活布局 一、引言 前面的博客介绍了UICollectionView的相关方法和其协议中的方法,但对布局的管理类UICollectionViewFlowLayout没有着重探讨,这篇博客介绍关于布局的相关设置和属性方法。 UICollectionView的简单使用: http://my.oschina.net/u/2340880/blog/522613 UICollectionView相关协议方法: http://my.oschina.net/u/2340880/blog/522613 通过layout的设置,我们可以编写更加灵活的布局效果。 二、将九宫格式的布局进行升级 在第一篇博客中,通过UICollectionView,我们很轻松的完成了一个九宫格的布局,但是如此中规中矩的布局方式,有时候并不能满足我们的需求,有时我们需要每一个Item展示不同的大小,代码如下: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UICollectionViewFlowLayout *layout = [

HTML前端开发之路——多列布局

对着背影说爱祢 提交于 2019-12-02 07:27:36
利用多列布局的属性可以轻松的为文字或者图片添加瀑布流效果; 首先看一下多列布局的属性总览: column-width属性简介 2.column-count属性简介 3.column属性简介 4.column-gap属性简介 5.column-rule属性简介 6.column-fill属性简介 7.column-span属性简介 来源: oschina 链接: https://my.oschina.net/u/2628107/blog/614597

django中瀑布流初探

拟墨画扇 提交于 2019-12-01 07:51:45
img.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .w{ width: 1000px; margin: 0 auto; } .item{ width: 25%; float: left; } .item img{ width: 100%; } </style> </head> <body> <div>姑娘们</div> <div class="w" id="container"> <div class="item">11 </div> <div class="item">22 </div> <div class="item">33 </div> <div class="item">44 </div> </div> <script src="/static/jquery-1.12.4.js"></script> <script> $(function () { initImg(); }); NID = 0; function initImg() { $.ajax({ url: '/get_imgs.html', type: 'GET', data:{nid:NID}, dataType: 'JSON', success

Django 之瀑布流实现

左心房为你撑大大i 提交于 2019-11-30 18:34:42
需求分析 现在是 "图片为王"的时代,在浏览一些网站时,经常会看到类似于这种满屏都是图片。图片大小不一,却按空间排列,就这是瀑布流布局。 以瀑布流形式布局,从数据库中取出图片 每次取出等量(7 条)的图片,加载到页面 当滑轮滚动到最底端时,自动再加载图片 实现流程 以包形式管理模型 将图片自动上传到静态文件 static 前端页面每行排列四张图片(四个 div ) 当页面加载时,以 ajax 形式自动向后台发送请求,获取图片数据,再用 js 循环生成 img 标签添加到每个 div 中 JS 循环图片信息列表,将当前循环元素的索引与每行排列的图片数目(4张)求余数,再利用余数定位每个 div 标签 模型设计 在这里,我以包的形式管理模型 models ,编写 app/models/video/img_models.py : from django.db import models class Img(models.Model): """ upload_to: 上传文件地址 """ src = models.FileField(max_length=64, verbose_name='图片地址', upload_to='app/static/app/upload') title = models.CharField(max_length=64, verbose_name='标题')

瀑布流的简单制作

牧云@^-^@ 提交于 2019-11-30 05:22:50
思路: 1、判断页面的宽度,根据页面宽度插入一定数量的div作为容器 2、根据图片等数据存放的数组生成构成瀑布流的元素 3、判断每一个容器的高度,在高度最小的一个div中插入新生成的元素 注意:一定要给内部的图片加上onload事件,否则会因为图片加载未完成影响高度的判断 css部分 (样式随便写写就好) 1 .all{ 2 margin: 0 auto; 3 display: flex; 4 justify-content: space-around; 5 } 7 .all>div{ 8 width: 260px; 9 display: table; 10 } 12 .active{ 13 margin-top: 20px; 14 width: 220px; 15 padding: 10px; 16 border: #555555 1px solid; 17 position: relative; 18 background: white; 19 } 21 .active h3{ 22 font-size: 16px; 23 } 25 .active p{ 26 font-size: 14px; 27 color: #666666; 28 margin-bottom: 20px; 29 } 31 .active p span{ 32 color: #AAAAAA; 33 } 35

瀑布流(圆角,卡片效果)

*爱你&永不变心* 提交于 2019-11-29 21:25:13
附上效果图 1.先加入需要的依赖 2.瀑布流的适配器 3.修改图片圆角类 4.创建一个实体类 5.MainActivity的主页代码 6.MainActivity的布局文件 7.列表布局文件 8.最后附上项目 加入需要的依赖 implementation 'com.android.support:recyclerview-v7:25.3.1' //设置瀑布流列表implementation 'com.github.bumptech.glide:glide:4.9.0' //获取图片以及圆角 implementation 'com.google.android.material:material:1.0.0' //卡片效果 在加入网络权限 <uses-permission android:name="android.permission.INTERNET"/> 瀑布流的适配器 1 public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.MyViewHolder> { 2 3 private Context context; 4 private List<Menu> list;//数据 5 private List<Integer> heightList;//装产出的随机数 6

阶段式(瀑布式)软件研发流程-Leangoo项目管理软件

一世执手 提交于 2019-11-29 19:02:30
软件产品开发流程: 下图所示的是一个软件产品开发大体上所需要经历的全部流程: 1、启动 在项目启动阶段,主要确定项目的目标及其可行性。我们需要对项目的背景、干系人、解决的问题等等进行了解。并编制项目章程和组建项目团队,包括:产品经理、架构工程师、UI工程师、开发工程师、测试工程师等。 完成以上准备工作之后,召开项目启动会,启动会结束则进入下一步的工作。 2、规划 在项目的规划阶段,项目经理需要和项目需求方,以及项目的相关干系人确定项目的范围,创建WBS,确定项目的里程碑和项目计划。同时制定项目的管理计划,包括成本、质量、风险等方面的预测和控制方案。 3)需求 在需求阶段,需要对采集的需求进行需求分析,编写PRD文档、UI设计、高保真设计。 最后进入需求评审,评审通过则进入下一步的工作 4)设计 在设计阶段,设计人员根据需求文档,对软件系统进行设计,包括数据结构、系统架构、业务模型及规则、流程控制、模块接口等。 输出概要设计,详细设计文档,以及数据库设计说明书等。 5)开发 在明确需求后,开发工程师正式进入编码阶段,根据产品原型图、UI效果图、设计文档,选择合适的开发环境、开发工具、开发语言等等进行实现,这个阶段也是个很长很难的阶段,也是软件实现的核心。 6)功能测试 对软件进行测试是保证软件质量的重要手段。开发工程师开发完成后,可以交由测试工程师测试