ios UICollectionView的使用

[iOS]UICollectionView布局使用之一-简单布局 UICollectionView组件从iOS5开始就有了,但是一般项目很少用。这里还是梳理一下它的使用方法。 我们看到很多电商类APP,比如:天猫,京东,里面的商品列表,就可以用UICollectionView来实现。 借用苹果的一张图了解下它的工作流程:   a、首先我们从APP界面上看到的是一行行和一列列的单元格,就是类似tableview的cell.在UICollectionVi... 阅读详情

UICollectionView的使用有两种方法,一种是继承UICollectionViewController,这个Controller会自带一个UICollectionView;另外一种是作为一个视图放在普通的UIViewController里面。

个人更喜欢第二种。下面采用第二种方式简单介绍一下UICollectionView的使用。

1.UIViewController实现委托,代码如下

@interface YourViewController : UIViewController<UICollectionViewDataSource,UICollectionViewDelegate>

2.声明UICollectionView,代码如下

@property(nonatomic,retain)UICollectionView*myCollectionView;

3.初始化UICollectionView,代码如下

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self initConllectionView];
}
-(void)initConllectionView{
    CircleLayout*layout=[[CircleLayout alloc] init];
    myCollectionView=[[UICollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:layout];
    [myCollectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"cell"];
    myCollectionView.backgroundColor=[UIColor whiteColor];
    myCollectionView.delegate=self;
    myCollectionView.dataSource=self;
    [self.view addSubview:myCollectionView];
    [layout release];
}

这里面的CircleLayout继承自UICollectionViewLayout,主要用来表现UICollectionView的布局以及一些属性。

4.实现- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath;

-(UICollectionViewCell*)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
    UICollectionViewCell*cell=[collectionView dequeueReusableCellWithReuseIdentifier:CELL_STR forIndexPath:indexPath];
    for (UIView*view in cell.contentView.subviews) {
        if (view) {
            [view removeFromSuperview];
        }
    }
    UIImageView*imgView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, ITEM_WIDTH, ITEM_WIDTH)];
    if (indexPath.row>4) {
        imgView.image=[UIImage imageNamed:@"apple.png"];
    }else{
        imgView.image=[UIImage imageNamed:@"applec.png"];
    }
    [cell.contentView addSubview:imgView];
    [imgView release];
    return  cell;
}

5.cell的大小

-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
    return CGSizeMake(130,130);
}


CircleLayout的代码:

CircleLayout.h

#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>
@interface CircleLayout : UICollectionViewLayout
@property (nonatomic, assign) CGPoint center;
@property (nonatomic, assign) CGFloat radius;
@property (nonatomic, assign) NSInteger cellCount;
@end


CircleLayout.m


#define ITEM_SIZE 130
#import "CircleLayout.h"

@implementation CircleLayout
@synthesize cellCount,center,radius;
- (void)prepareLayout{
    [super prepareLayout];
    CGSize size = self.collectionView.frame.size;
    cellCount=[self.collectionView numberOfItemsInSection:0];
    center=CGPointMake(size.width/2, size.height/2);
    radius = MIN(size.width, size.height) / 2.5;
}
-(CGSize)collectionViewContentSize{
    return [self collectionView].frame.size;
}
- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)path
{
    UICollectionViewLayoutAttributes* attributes = [UICollectionViewLayoutAttributes layoutAttributesForCellWithIndexPath:path];
    attributes.size = CGSizeMake(ITEM_SIZE, ITEM_SIZE);
    attributes.center = CGPointMake(center.x + radius * cosf(2 * path.item * M_PI /cellCount),
                                    
                                    center.y + radius * sinf(2 * path.item * M_PI /cellCount));
    return attributes;
}
-(NSArray*)layoutAttributesForElementsInRect:(CGRect)rect{
    NSMutableArray* attributes = [NSMutableArray array];
    for (NSInteger i=0 ; i < self.cellCount; i++) {
        NSIndexPath* indexPath = [NSIndexPath indexPathForItem:i inSection:0];
        [attributes addObject:[self layoutAttributesForItemAtIndexPath:indexPath]];
    }
    return attributes;
}
- (UICollectionViewLayoutAttributes *)initialLayoutAttributesForInsertedItemAtIndexPath:(NSIndexPath *)itemIndexPath{
    UICollectionViewLayoutAttributes* attributes = [self layoutAttributesForItemAtIndexPath:itemIndexPath];
    attributes.alpha = 0.0;
    attributes.center = CGPointMake(center.x, center.y);
    return attributes;
}
- (UICollectionViewLayoutAttributes *)finalLayoutAttributesForDeletedItemAtIndexPath:(NSIndexPath *)itemIndexPath
{
    UICollectionViewLayoutAttributes* attributes = [self layoutAttributesForItemAtIndexPath:itemIndexPath];
    attributes.alpha = 0.0;
    attributes.center = CGPointMake(center.x, center.y);
    attributes.transform3D = CATransform3DMakeScale(0.1, 0.1, 1.0);
    return attributes;
}
@end

避坑指南:为什么你的conda环境装不上Mamba?从CUDA到ABI的深度排查 本文深入解析conda环境中安装Mamba架构时常见的CUDA版本冲突、ABI不匹配等问题,提供从基础检查到深度排查的系统化解决方案。针对`causal-conv1d`和`mamba-ssm`安装失败场景,详细讲解PyTorch版本绑定、编译器工具链兼容性等关键技术要点,并给出预编译wheel选择、动态链接库配置等实用修复方案。 阅读详情

相关推荐

Setup&Hold互卡问题和Useful Skew的影响

setup和hold互卡问题分析

godping的博客 5092

【iOS】—— UICollectionView基础

一、UICollectionView基础: 1.简介: UICollectionView是iOS6之后引入的一个新的UI控件,在目前的iOS开发中,使用非常广泛。它和UITableView都继承自UIScrollView,但是它比UITableView更加强大,可以根据需要自定义各种各样复杂的布局。 它和UITableView十分相似,并且很多代理方法都十分类,具体的可以看看苹果官方的文档:UICollectionView - Apple Developer 2.特点: (1)系统自带的流水布局支持水平和垂

m0_55124878的博客 5106

K-L展开 (Karhunen-Loeve expansion)

K-L变换

susan_wang1的博客 2万+

【iOS】—— UICollectionView

end然后在.m里进行初始化和属性设置} @end//返回每个item -(UICollectionViewCell *) collectionView :(UICollectionView *) collectionView cellForItemAtIndexPath :(NSIndexPath *) indexPath {}

m0_62386635的博客 1212

从零构建AI智能体:基于opencode框架的Agent开发全流程指南

AI智能体(AI Agent)作为人工智能领域的重要发展方向,正从概念走向工程实践。其核心原理在于赋予AI自主规划、执行和迭代的能力,使其不再局限于简单的问答,而是能够理解复杂目标、分解任务、调用工具并完成闭环。这一技术价值在于将AI从“对话伙伴”升级为“执行伙伴”,极大地拓展了自动化边界,在智能客服、数据分析、自动化运维等场景展现出巨大潜力。本文聚焦于如何利用opencode这一热门开发框架,快速构建具备实际能力的智能体。通过拆解其核心组件如技能库、规划器与运行时,并结合具体实践案例,系统阐述了从环境搭建

weixin_29055699的博客 430

遥感图像融合实战:5分钟搞懂全色与多光谱图像如何提升分辨率(附Python代码)

本文通过实战案例,详细解析了如何利用全色锐化技术融合全色与多光谱遥感图像,以提升图像分辨率。文章深入浅出地介绍了核心概念、环境配置、经典GS融合算法的Python代码实现,并对比了不同算法的优劣,最后提供了效果评估方法与实战陷阱分析,帮助读者快速掌握遥感图像融合的关键技术。

weixin_29041195的博客 394

iOS——UICollectionView

UICollectionView基础: 一, UICollectionView简介: UICollectionView是iOS 6.0之后引入的一种UI控件,类似于tableView有相似的代理方法,但UIColletionView的功能更为强大,可以实现瀑布流,根据开发者的喜好去自定义布局。 二, 简单的使用UICollectionView 下面先实现一个简单的九宫格布局来介绍此控件的一些基本属性。 类似于使用tableView,需要实现两个协议。 分别为1UICollectionViewDelegat

chabuduoxs的博客 3950

极化码理论及算法研究6-SCL、CA-SCL及matlab仿真

极化码译码算法5——SCL/CA-SCL译码算法系列目录1、引言2、串行抵消列表(SCL)译码算法2.1、路径度量PM 系列目录 (如要找其他内容,欢迎访问我的主页寻找) #前言 #极化码概述 #极化码定义 #极化码编码 #极化码译码 #5G标准中极化码的编译码概述 #5G标准中极化码的编码 #5G标准中极化码的译码 #总结 1、引言 在上一节中,介绍了经典的SC译码算法的理论原理以及其matlab仿真代码,SC译码算法具有较低的译码复杂度,但是由于每个译码的比特信息都依赖于前面所有的比特信息的译码结果,得

1万+

【iOS】UICollectionView使用

总结了UICollectioinView的基本使用、参差瀑布流式和圆环式布局。其实算是特殊Flow布局的UITableView,但简单的列表仍可以使用UITableViewUICollectionView最大的优势就是通过自定义Layout,实现cell的布局,整体的思路就是:通过一些几何计算,设置好每个item的布局位置和大小一篇较为详细的 UICollectionView 使用方法总结

XY_Mckevince的博客 3190

深入理解HanLP1.x,填平可能遇到的坑

提取指定数量的摘要。自定义词典为什么要单独领出来讲呢?因为在我们的业务开发中,可能分词的效果并不理想,需要定制自己的词库,索引更加常用。例如:小米su7特斯拉modelY比亚042025款6575767670908我们需要分出小米su72025款等词。我们分别看看用字典和不用字典的效果。

static_coder的博客 977

Qt入门教程【环境搭建篇】Qt6+Mingw+QMake+QtCreator

Qt Windows平台安装

小鱼酱的博客 2万+

iOS开发中UICollectionView的用法详解第一篇(UICollectionViewLayout)

这篇文章主要讲解UICollectionViewLayout的用法。

我叫柱子哥 3074

大模型长对话中上下文无法承载全部历史,如何压缩或提取重点

如果说截断和滑动窗口是“硬性”压缩,那摘要生成技术就显得“软”多了,也更接近于智能化的解决方案。它的思路是:不直接丢弃历史,而是通过自然语言处理(NLP)技术,把冗长的对话记录浓缩成一段简短的摘要,保留核心信息。这样既能大幅减少token数量,又不至于丢失关键内容。这种方法通常会借助预训练模型,比如BART或T5,它们擅长从长文本中提取重点内容。

大模型大数据攻城狮的专栏 1584

iOS UICollectionView简单使用

NS_CLASS_AVAILABLE_IOS(6_0) @interface UICollectionView : UIScrollView

程序猿 13万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【iOS】UICollectionView的使用方法

UICollectionView 是一个强大的 UIKit 组件,用于展示数据集合,比如图片、文字列表等。它支持复杂的布局,包括网格、瀑布流等。以下是我个人在学习UICollectionView时的笔记。

2301_80467753的博客 2314

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

iOS开发之控件UICollectionView 的使用

在iOS开发的过程中,很多地方需要使用到列表。UITableView 和UICollectionView。记录一下留个笔记。 下面一段是来自其他大神的讲解UICollectionView详解引用一下。 UICollectionView,内容和布局完全分离的设计,UICollectionView负责界面部分,UICollectionViewlayout负责UIcollectionView

清淡的邪恶的博客 4716

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

iOS Swift版 UICollectionView的使用

前言: Android中的RecyclerView在软件开发已经占到了重要地位。类似地iOS中也有对应的控件–UICOllectionView。有一点需要补充的是,网络上其它关于该控件的介绍使用时都没有提到类似RecyclerView的水平方向上的滚动(非九宫格布局),而本文将浅显地说明如何达到这一效果。在开始学习之前需要先要了解关于UICollection、cell、cell子项(cell内部我们要放入的控件)的概念。 一:导入图片到Assets.xcassets文件夹 这里为了方便演示用到了9张相同的图

kicinio的博客 4826

iOS—UICollectionView的简单使用

文章目录UICollectionView与UITableView实现一个简单的九宫格类布局UICollectionView的代理方法UICollectionViewDataSource协议UICollectionViewDelegate协议使用FlowLayout进行灵活布局UICollectionViewFlowLayout相关属性方法动态的配置layout的相关属性UICollectionViewDelegateFlowLayout自定义FlowLayout进行瀑布流布局进行自定义瀑布流布局UIColl

qq_45836906的博客 1548

iOS:UICollectionView使用

说明: UICollectionView类似UITableVIew,可实现横向或纵向排列,还可实现每行Item使用不同的布局,类试于android中的RecyclerView。 横向排列:选中UICollectionView -> 右侧属性面板Scroll Direction -> Vertical 纵向排列:选中UICollectionView -> 右侧属性面板Scro...

a526001650a的专栏 919

ios UICollectionView使用

1 #import <UIKit/UIKit.h> 2 3 @interface NJProductViewController : UICollectionViewController 4 // 'UICollectionView must be initialized with a non-nil layout parameter' 5...

diren5694的博客 120

iOS 关于 UICollectionView常见使用方法

iOS 随笔

qq_34491373的博客 560

IOS中UICollectionView的使用

UICollectionView其实和tableView的功能类似,都是向用户展示数据列表,只不过     CollectionView可以更加灵活的设计和现实数据内容。      在UICollectionView中涉及到三个常用协议UICollectionViewDataSource,UICollectionViewDelegate,UICollectionViewDelegateFlo

u013425609的专栏 684

iOS UICollectionView 使用

应用场景: UICollectionView 横滑和竖滑只支持一种,要是想兼用 必须套一下两个UICollectionView一起使用 基本使用 1:首先需要先添加UICollectionView的代理:UICollectionViewDelegate UICollectionViewDataSource UICollectionViewDelegateFlowLayout 2:UI...

KongMuLianHua的博客 2084

IOS UICollectionView的简单使用

#import "ViewController.h" #import "FirstCollectionViewCell.h" #import "SecondCollectionViewCell.h" //需要实现UICollectionViewDataSource, UICollectionV...

chuangyan8950的博客 315

iOS开发之UICollectionView使用

iOS CollectionView的出现是一大福利,再也不用用TableView来定义复杂的多栏表格了,用法与Table类似,只是Cell必须自己添加,无默认模式 由于CollectionView没有默认的Cell布局,所以一般还是自定义方便又快捷 一、自定义Cell 1、新建类CollectionCell继承自UICollectionViewCell 2、新建X

KylinBL的专栏 4593
上一篇: mac 无法连接android手机进行调试 解决方案
下一篇: ios 视频播放
yesjava
博客等级 码龄19年 69粉丝 153原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值