zoukankan      html  css  js  c++  java
  • Objective-c——UI基础开发第十二天(相册展示)

    一、知识点

    模仿新特性

    UICollectionViewFlowLayout自定义布局

    相册

    瀑布流(淘宝购物之类的

    二、复习

    a、UICollectionView 和 tableview共享一套API 

    不同:

    1、实例化collectionView必须传入一个非空的layout布局对象 layout:主要针对 cell的各个属性操控(UICollectionViewLayout 啥都没有只是定义了必须实现的方法/UICollectionViewFlowLayout 是上面的子类)

    2、必须要注册cell tableviewcell 可以在返回cell 的时候做为空判断,但是这个collectionviewcell必须注册

    xib :必须设置重用标识符,且registerNib 如果regsterClass的话,里面的东西是看不见的

    class :register

     storyboard:必须设置重用标识符

    b、flow layout

    itemSize

    sectionInsets 设置组的内边距

    scrollDirection 

    minimumlineSpacing

    minimumInteritemSpacing

    c、组头和组尾

    必须通过代理方法进行重用返回(kind属性分两种、如果通过storyboard 显示,必须要设置重用标识符,不然代理方法不会被调用

    1、悬浮效果,sectionHeaderPinToVisibleBounds

    sectionFooterPinToVisibleBounds

    2、设置组头或组尾的size

    headerReferencesSize

    FooterReferencesSize

    三、实现相册展示的放大放小

    主要在layout中布局继承自 UICollectionViewFlowLayout

    1、注意:为什么直接在layout的init方法中,初始化cell 的itemSize会不能实现

    - (instancetype)init {

        if (self = [super init]) {   //在此创建cell的大小等属性设置 }    return self;}

    原因:

    在实例化layout的时候, collectionView还没有实例化, 所以在这个方法里,实例化的时候取不到collectionView的frame

    解决方案:在prepareLayout [super prepareLayout]方法中实现并定义

    2、重点:怎么设置Cell中滚动过来的图片大小(需要通过- (NSArray<UICollectionViewLayoutAttributes *> *)layoutAttributesForElementsInRect:(CGRect)rect  所有cell的属性设置

     // 1. 取出所有的item 的 UICollectionViewLayoutAttributes

        NSArray *superAttributes = [super layoutAttributesForElementsInRect:rect];

    3、刷新布局

    #pragma mark -  当屏幕的可见范围发生变化的时候, 要重新刷新布局

    - (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds {

            return YES;

    }

  • 相关阅读:
    poj 2728 Desert King
    uva 439 Knight Moves
    hdu 1875 畅通工程再续
    scau实验题 8600 骑士周游问题(有障碍物)
    scau实验题 8596 Longest Ordered Subsequence
    poj 1679 The Unique MST
    uva 527 Oil Deposits
    poj 2533 Longest Ordered Subsequence
    .net 程序员 java 开发入门
    Collation conflict occur at operation on User define funtion & table's column
  • 原文地址:https://www.cnblogs.com/CityPe/p/5405901.html
Copyright © 2011-2022 走看看