自定义UICollectionView布局-01

自定义UICollectionView布局-01

0.应用场景:

项目中经常会用到各种各样的cell,有时自定义cell已经无法满足产品的需求,我们可以选择复杂并且开发难度大的开发方式解决问题,当然也可以选择简单但是有技巧的解决方案,其中自定义UICollectionView布局就是一种很好的方式,这节就探讨如何使用自定义UICollectionView布局做出漂亮的界面。

1.继承方案

  • 1> 继承UICollectionViewLayout
  • 2> 继承UICollectionViewFlowLayout

2.可能需要重写的方法

  • 1> prepareLayout

    • 一般在这里设置一些初始化参数,执行初始化操作
    • 必须要调用[super prepareLayout];
  • 2> layoutAttributesForElementsInRect:
    • 返回的数组中装着UICollectionViewLayoutAttributes对象
    • 返回collectionView上面所有元素(比如cell)的布局属性:这个方法决定了cell怎么排布
    • 每个cell都有自己对应的布局属性:UICollectionViewLayoutAttributes
  • 3> shouldInvalidateLayoutForBoundsChange:
    • 当uicollectionView的bounds发生改变时,是否要刷新布局
    • 一旦重新刷新布局,就会重新按顺序调用1>、2>两个方法
  • 4> targetContentOffsetForProposedContentOffset:withScrollingVelocity:
    • 这个方法的返回值,决定了collectionView最终的偏移量(最终的停留位置)
    • proposedContentOffset参数:collectionView本应该的偏移量
    • velocity参数:collectionView的滚动速率
  • 5> layoutAttributesForItemAtIndexPath:
    • 如果继承了UICollectionViewLayout,最好实现这个方法
    • 作用是:返回indexPath位置cell的布局属性

PS:后续会上传代码。

时间: 2024-08-28 23:09:42

自定义UICollectionView布局-01的相关文章

iOS8自动调整UITableView和UICollectionView布局

本文讲述了UITableView.UICollectionView实现self-sizing cell布局的知识,以及如何用InvalidationContext优化UICollectionView布局的更新. 背景 iOS越来越人性化了,用户可以在设置-通用-辅助功能中动态调整字体大小了.你会发现所有iOS自带的APP的字体大小都变了,可惜我们开发的第三方APP依然是以前的字体.在iOS7之后我们可以用UIFont的preferredFontForTextStyle:类方法来指定一个样式,并让

iOS 8自动调整UITableView和UICollectionView布局

本文讲述了UITableView.UICollectionView实现 self-sizing cell 布局的知识,以及如何用 InvalidationContext 优化 UICollectionView 布局的更新. 背景 iOS 越来越人性化了,用户可以在设置-通用-辅助功能中动态调 “” 阅读器 UITableViewUICollectionView (via:玉令天下的Blog) 本文讲述了UITableView.UICollectionView实现 self-sizing cell

[转]iOS8 自动调整UITableView和UICollectionView布局

转自:http://www.cocoachina.com/industry/20140825/9450.html (via:玉令天下的Blog) ? 本文讲述了UITableView.UICollectionView实现 self-sizing cell 布局的知识,以及如何用 InvalidationContext 优化 UICollectionView 布局的更新. ? 背景 iOS 越来越人性化了,用户可以在设置-通用-辅助功能中动态调整字体大小了.你会发现所有 iOS 自带的APP的字体

获取 AlertDialog自定义的布局 的控件

AlertDialog自定义的布局 效果图: 创建dialog方法的代码如下: 1 LayoutInflater inflater = getLayoutInflater(); 2 View layout = inflater.inflate(R.layout.dialog, 3 (ViewGroup) findViewById(R.id.dialog)); 4 new AlertDialog.Builder(this).setTitle("自定义布局").setView(layout

[android] 手机卫士自定义对话框布局

手机防盗页面部分 点击手机防盗,进行判断,如果没有设置密码,显示一个设置密码的对话框,如果已经设置密码了,弹出输入密码对话框 密码保存在SharedPreferences中,数据取出进行判断 自定义一个布局文件,dialog_setup_password.xml 根布局宽度不要充满屏幕 内部控件,宽度要小一点留出空间,居中对齐,android:gravity=”center” 两个并排的按钮,确定和取消,线性布局水平朝向 获取AlertDialog.Builder对象,通过new Builder

Android自定义动态布局 — 多图片上传

Android自定义动态布局 - 多图片上传 本文介绍Android中动态布局添加图片,多图片上传. 项目中效果图:    技术点: 1.动态添加格局中的线条和添加图片的+号 2.多张图片异步上传 首先来看一下布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layo

Android 自定义RadioGroup布局

前段时间项目中需要这种效果,自定义RadioGroup布局,但是前提是要找到RadioButton.我搜集各种资料,尝试各种测试.终于有了自定义RadioGroup布局.自定义RadioGroup布局,里面可以包含各种布局,RadioButton也在这里面的布局.通过递归查找方法能找到RadioButton的id,还是一组的.接下来看代码. 转载请注明出处:单击此处 欢迎下载测试demo:单击此处 一.自定义CustomNestRadioGroup类. package com.example.c

BootStrap入门教程 (一) :手脚架Scaffolding(全局样式(Global Style),格网系统(Grid System),流式格网(Fluid grid System),自定义(Customing),布局(Layouts))

2011年,twitter的“一小撮”工程师为了提高他们内部的分析和管理能力,用业余时间为他们的产品构建了一套易用.优雅.灵活.可扩展的前端工具集--BootStrap.Bootstrap由MARK OTTO和Jacob Thornton所设计和建立,在github上开源之后,迅速成为该站上最多人watch&fork的项目.大量工程师踊跃为该项目贡献代码,社区惊人地活跃,代码版本进化非常快速,官方文档质量极其高(可以说是优雅),同时涌现了许多基于Bootstrap建设的网站:界面清新.简洁;要素

企业生产环境不同业务,系统分区建议(自定义分区布局)

Linux系统对分区的要求 1.最少要有/分区 2.swap(交换分区)的作用:虚拟化内存,swap区分的大小=105*物理内存容量(mem<8G) 3.建议设置独立的/boot分区 #linux引导分区,存放系统引导文件,如果linux内核等,所有文件大小一般只有十几M,因此,该分区设置100-200M 企业生产环境不同业务linux系统分区建议(自定义分区布局) 1.常规分区方案 /分区:剩余硬盘大小 swap分区:内存的1.5倍(mem>8G) /boot分区:100M 2.DB及存储