`
dcj3sjt126com
  • 浏览: 1871086 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

uicollectionview 纯代码布局, 添加头部视图

    博客分类:
  • IOS
 
阅读更多
#import <UIKit/UIKit.h>

@interface myHeadView : UICollectionReusableView
{
    UILabel   *TitleLable;
}
-(void)setTextTitle;
@end
#import "myHeadView.h"

@implementation myHeadView

-(instancetype)initWithFrame:(CGRect)frame{
    if (self =[super initWithFrame:frame]) {
        [self createUI];
    }
    return self;
}
-(void)createUI{
    
    TitleLable= [[UILabel alloc]initWithFrame:CGRectMake(10, 10, 100, 100)];
    [self addSubview:TitleLable];
}
//这是头部
-(void)setTextTitle
{
    TitleLable.text=@"哈哈";
    
}
@end

  

#import "ViewController.h"
#import "myHeadView.h"
#import "myHeadView.h"
@interface ViewController ()<UICollectionViewDataSource,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout>
{
    UICollectionView  *_myConllectionView;
    NSMutableArray    *_dataArray;
}
@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    _dataArray =[[NSMutableArray alloc]initWithObjects:[UIColor redColor],[UIColor greenColor],[UIColor blueColor],[UIColor grayColor],[UIColor lightGrayColor],[UIColor purpleColor], nil];
    
    UICollectionViewFlowLayout    *layout=[[UICollectionViewFlowLayout alloc]init];
    [layout setHeaderReferenceSize:CGSizeMake(320, 50)]; //设置headview 的大小
    layout.minimumInteritemSpacing=10; //cell之间左右的
    layout.minimumLineSpacing=10;      //cell上下间隔
    layout.itemSize=CGSizeMake(80,140);  //cell的大小
    layout.sectionInset=UIEdgeInsetsMake(5, 9, 5, 9);
    layout.headerReferenceSize = CGSizeMake(320, 50);
    
    _myConllectionView =[[UICollectionView alloc]initWithFrame:self.view.bounds collectionViewLayout:layout];
    [_myConllectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"cell"];
    [_myConllectionView registerClass:[myHeadView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeadView"];
    
    _myConllectionView.delegate=self;
    _myConllectionView.dataSource=self;
    [self.view addSubview:_myConllectionView];
    
    
}

-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
    return 2;
}
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    return _dataArray.count;
}
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    
    UICollectionViewCell  *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];
    cell.backgroundColor=[_dataArray objectAtIndex:indexPath.row];
    return cell;
}

-(UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
    UICollectionReusableView *reusableview = nil;
    NSLog(@"kind = %@", kind);
    if (kind == UICollectionElementKindSectionHeader){
    
        myHeadView *headerV = (myHeadView *)[collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeadView" forIndexPath:indexPath];
        [headerV setTextTitle];
        reusableview = headerV;
    }
    
    return reusableview;
    
}

@end

 

分享到:
评论

相关推荐

    iOS UICollectionView 纯代码布局,添加Section Header 头部视图跟 Section Footer尾部视图

    在这个主题中,我们将深入探讨如何通过纯代码方式设置UICollectionView的布局,并添加Section Header和Footer视图。 首先,你需要创建一个UICollectionView类的实例,然后配置其frame和数据源代理。数据源代理...

    IOS UICollectionView布局详解

    本文将深入探讨UICollectionView的布局机制,以及如何通过代码实现自定义布局。 首先,UICollectionView的核心在于其布局(UICollectionViewLayout)类,它决定了cell的排列方式、大小以及滚动方向。默认情况下,...

    CollectionView添加头部Demo

    这个类将作为头部视图的模板,我们可以在这个类中添加所需的UI元素,比如UILabel、UIImageView等,并实现相应的布局代码。例如: ```swift class HeaderView: UICollectionReusableView { @IBOutlet weak var ...

    仿网易头部视图

    【标题】"仿网易头部视图"所涉及的知识点主要集中在iOS应用开发中,特别是UI设计和滚动视图的实现。这个标题暗示我们要探讨的是如何在iOS应用中创建一个类似于网易新闻App顶部的滚动视图组件。这个组件通常包含一些...

    IOS 自定义UICollectionView的头视图或者尾视图UICollectionReusableView

    在iOS开发中,UICollectionView是一种强大的布局控件,用于展示可滚动的数据集合,具有高度自定义的能力。本篇文章将深入探讨如何在iOS中自定义UICollectionView的头视图(header)和尾视图(footer),主要使用...

    swift-StretchHeadView头部视图拉伸效果

    `方法中,获取当前滚动视图的contentOffset,根据这个值来计算头部视图的新的frame,然后调用`setNeedsLayout`和`layoutIfNeeded`来更新视图布局。 4. **计算拉伸比例**:你可以根据contentOffset的y值与头部视图...

    UICollectionView示例代码

    - 头部和尾部视图:`headerReferenceSize`和`footerReferenceSize`设定大小,`register(_:forSupplementaryViewOfKind:withReuseIdentifier:)`注册,`collectionView(_:viewForSupplementaryElementOfKind:at:)`...

    UICollectionView

    在实际开发中,可能还需要根据需求进行更多的定制,比如添加头部视图、尾部视图、间距调整等。记住,实践是检验理论的最好方式,尝试创建一个简单的项目并逐步完善,将有助于更好地理解和掌握UICollectionView的瀑布...

    swift-类似新闻类软件头部视图跟随滚动的效果

    创建一个`UIScrollView`作为主要的滚动视图,并在其内部添加一个包含头部视图(例如`UIImageView`或`UILabel`)的容器视图。设置`UIScrollView`的`contentSize`属性以确保其内容可以滚动。然后,为`UIScrollView`...

    UICollectionView瀑布流Demo

    这个Demo可以作为基础,根据具体需求进行扩展,例如添加头部视图、处理横竖屏切换、支持不同尺寸的单元格等。 通过这个过程,开发者不仅可以掌握UICollectionView自定义布局的基本技巧,还能深入理解布局计算的原理...

    UICollectionView详解并解决MJRefresh下拉刷新遮挡问题

    在iOS开发中,UICollectionView是一种强大的视图组件,用于展示可滚动的、布局灵活的数据集合。本篇文章将深入探讨UICollectionView的使用方法,并解决在集成MJRefresh下拉刷新时可能出现的遮挡问题。 首先,我们来...

    swift-SpringTableHeader是一个非常基础的UIScrollView的头部弹性视图

    这个组件使得用户在滚动 UITableView 或 UICollectionView 时,头部视图能够以一种弹性的动画方式扩展,从而为应用增添动态美感和交互性。 在 Swift 开发中,SpringTableHeader 的实现基于 iOS 的 Core Animation ...

    ios-自定义瀑布流(可添加自定义header和footer).zip

    总结来说,"ios-自定义瀑布流(可添加自定义header和footer).zip"提供了一套完整的iOS瀑布流解决方案,包括自定义布局、头部和尾部视图的实现,对于想要在iOS应用中实现类似功能的开发者来说,这是一个非常有价值的...

    UICollectionView使用的demo

    - 在Interface Builder中添加UICollectionView控件,设置约束,或者在代码中创建并添加到视图层次。 - 实现UICollectionViewDataSource和UICollectionViewDelegate协议。 3. UICollectionViewCell: - 自定义...

    头视图下拉放大

    这段代码中,`scrollViewDidScroll`方法监听了滚动事件,`delta`计算了下拉的距离,然后通过修改`transform`属性实现头部视图的放大。 通过以上介绍,我们对"头视图下拉放大"有了全面的理解,包括它的概念、实现...

    iOS 流布局教学代码

    5. **头部视图和尾部视图** - 可以添加UICollectionViewReusableView作为Section Header或Footer,提供额外的信息或装饰。 6. **动画与性能** - UICollectionView支持动画更新,例如插入、删除、移动单元格。同时...

    UICollectionView的使用

    UICollectionView由两部分组成:UICollectionView类本身,负责管理视图和数据,以及UICollectionViewFlowLayout,定义了视图的布局方式。默认情况下,UICollectionViewFlowLayout会创建一个简单的网格布局,但你可以...

    UICollectionView的使用.zip

    在iOS开发中,UICollectionView是一种强大的视图组件,用于展示数据集合,可以自定义布局和单元格样式,提供了灵活的网格视图。这个压缩包“UICollectionView的使用.zip”很可能包含了一系列关于如何在Objective-C中...

    自己写的uicollectionview

    在iOS开发中,UICollectionView是一种非常重要的视图组件,它允许我们以网格布局展示大量数据,如照片、图标或任何自定义视图。标题"自己写的UICollectionView"表明这是一个开发者自定义实现的UICollectionView,...

Global site tag (gtag.js) - Google Analytics