UICollectionView的HeaderView、FooterView

用blender为模型贴图并在gazebo中显示 用blender为模型贴图并在gazebo中显示 首先我用的是最新的blender2.92版本,附上链接https://www.blender.org/download/。并设置好简体中文。语言可以在编辑->偏好设置->界面里面设置。 首先界面右上角的摄像头,方块,灯光三个场景全都删除。 接着导入stl格式的模型文件,下面以tianbot_mini上面的激光雷达的模型为例。 导入激光雷达模型后,点击进入上方的UV Editing按钮进入UV编辑界面 此时我面看见网格化的激光雷达模型 阅读详情

1。相关方法

      - (void)registerNib:(UINib *)nib forSupplementaryViewOfKind:(NSString *)kind withReuseIdentifier:(NSString *)identifier  //注册xib,以便后续重用

      - (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath   //具体配置内容  --- <UICollectionViewDataSource>

      - (id)dequeueReusableSupplementaryViewOfKind:(NSString*)elementKind withReuseIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath*)indexPath  //重用


e.g. 自定义HeaderView、FooterView

       创建xib,继承UICollectionReusableView

       @interface FooterView : UICollectionReusableView
               @property (weak, nonatomic) IBOutlet 。。。;  //各控件声明
       @end  

       ============

       - (UICollectionViewFlowLayout *) flowLayout{
              UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
              flowLayout.。。。。。。//各属性设置
              flowLayout.headerReferenceSize = CGSizeMake(300.0f, 50.0f);  //设置head大小
              flowLayout.footerReferenceSize = CGSizeMake(300.0f, 50.0f);
              return flowLayout;
      }    

      UICollectionViewController *viewController =   [[UICollectionViewController  alloc]  initWithCollectionViewLayout:[self flowLayout]];

     ================

    static NSString *kCollectionViewCellIdentifier = @"CellId"; 

    static NSString *kCollectionViewHeaderIdentifier = @"HeaderId"; 

    static NSString *kCollectionViewFooterIdentifier = @"FooterId"; 

   - (instancetype) initWithCollectionViewLayout:(UICollectionViewLayout *)layout{
              self = [super initWithCollectionViewLayout:layout];
              if (self != nil){
                     UINib *nib = [UINib nibWithNibName: NSStringFromClass([MyCollectionViewCell class]) bundle:[NSBundle mainBundle]];
                      [self.collectionView registerNib:nib  forCellWithReuseIdentifier:kCollectionViewCellIdentifier];  //注册加载单元格
 
                      UINib *headerNib = [UINib nibWithNibName:NSStringFromClass([HeaderView class])  bundle:[NSBundle mainBundle]];
                      [self.collectionView registerNib:headerNib  forSupplementaryViewOfKind :UICollectionElementKindSectionHeader  withReuseIdentifier: kCollectionViewHeaderIdentifier ];  //注册加载头
        
                      UINib *footerNib = [UINib   nibWithNibName:NSStringFromClass([FooterView class]) bundle:[NSBundle mainBundle]];
                      [self.collectionView registerNib:footerNib    forSupplementaryViewOfKind: UICollectionElementKindSectionFooter  withReuseIdentifier: kCollectionViewFooterIdentifier ];
             }
             return self;
    }

     - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView  cellForItemAtIndexPath:(NSIndexPath *)indexPath{
               MyCollectionViewCell *cell = [collectionView  dequeueReusableCellWithReuseIdentifier:kCollectionViewCellIdentifier  forIndexPath:indexPath];
               cell. 。。。。。
              return cell;
    }

    - (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView   viewForSupplementaryElementOfKind:(NSString *)kind  atIndexPath:(NSIndexPath *)indexPath{
            NSString *reuseIdentifier = kCollectionViewHeaderIdentifier;
            if ([kind isEqualToString: UICollectionElementKindSectionFooter ]){
                    reuseIdentifier = kCollectionViewFooterIdentifier;
            }
    
           UICollectionReusableView *view =  [collectionView dequeueReusableSupplementaryViewOfKind :kind   withReuseIdentifier:reuseIdentifier   forIndexPath:indexPath];
          if ([kind isEqualToString:UICollectionElementKindSectionHeader]){
                 HeaderView *header = (HeaderView *)view;
                 header.label.text = [NSString stringWithFormat:@"Section Header %lu",  (unsigned long)indexPath.section + 1];
         }
         else if ([kind isEqualToString:UICollectionElementKindSectionFooter]){
                FooterView *footer = (FooterView *)view;
                NSString *title = [NSString stringWithFormat:@"Section Footer %lu",  (unsigned long)indexPath.section + 1];
                [footer.button setTitle:title forState:UIControlStateNormal];
         }
          return view;
    }



L2tp环境搭建笔记- Openwrt平台 本文使用3台openwrt设备, 分别搭建L2TP服务和2个客户端, 进行端到端验证和局域网组网,并分析搭建过程中涉及的默认路由( defaultroute) 配置问题。 阅读详情

相关推荐

智能车小白也能懂:手把手教你用LM358和工字电感搭建电磁循迹模块(附PCB设计避坑)

本文详细介绍了如何利用LM358运放和工字电感搭建智能车电磁循迹模块,从电感选型、电路设计到PCB布局和焊接调试,提供全流程实战指南。特别针对新手常见问题,如信号干扰、电路饱和等,给出具体解决方案和参数配置,帮助智能车比赛爱好者快速掌握电磁循迹技术。

weixin_30307921的博客 401

UICollectionView添加headerview/footerView

下面以创建footerview为例: 1、在UICollectionViewFlowLayout中添加: flowLayout.footerReferenceSize = CGSizeMake(ScreenWidth, 30); 2、创建自定义的Footerview,继承于UICollectionReusableView ,这里命名为:"MyFooterView" 3、注册这

孟宪亮的技术博客 1万+

激光可燃气体传感器:核心技术环节分析

激光可燃气体传感器核心技术涵盖七个维度:1)TDLAS光谱吸收与调制技术(检测下限ppm级);2)DFB激光器与双闭环温控系统(波长稳定性±0.0036nm);3)微弱信号处理技术(信噪比提升60dB);4)环境补偿算法(温压补偿误差<±1%);5)本质安全防爆设计(ExiaIICT4Ga等级);6)智能边缘计算(STM32L476芯片);7)多重性能验证(响应时间<1秒)。通过微型化、多气体检测等创新,该技术已在工业安全等领域替代传统方案,实现高精度检测。(149字)

上市公司前技术负责人,20 年软硬件深耕 + 百人研发团队管理经验,名校理工科背景加持。从技术攻坚到团队掌舵,沉淀海量项目实战与管理心得,专注分享软硬件干货、疑难问题解决方案,既是靠谱知识传播者,也盼链接优质项目共成长。 1042

UICollectionView 添加 HeaderView 和 FooterView 例子

为什么80%的码农都做不了架构师?>>> ...

weixin_34210740的博客 1882

汽车车牌识别系统实现(二)--车牌定位+代码实现

汽车车牌识别系统实现(二)-- 车牌定位 前言 本人大四计算机视觉处理方面菜鸟一枚,因个人兴趣和毕设的缘故,故而想学习计算机视觉方面的内容,有不正确的地方还等各位大神批评指正。 图像预处理 照相机获取到汽车车牌图像时,绝大多数情况下,图像里只存在一个车牌的情况是不太现实的,一幅图像里存在建筑物、树、其它汽车等等是很正常的;而且绝大多数都会存在噪声点,这种情况下就会对车牌定位和识别造成极大程度的干扰...

奋斗の博客 1万+

【RK3399】Android平台增加一款声卡设备(ES7210+ES8156),进行录音/播放测试。

文章目录前言一、开发环境二、概述三、硬件介绍1、ES72102、ES81563、数字麦克风阵列4、音频示意图四、下载SDK五、编译、烧写1、u-boot2、kernel3、Android SDK4、烧写分区5、烧写固件六、声卡驱动1、添加codec代码2、修改Kconfig3、修改Makefile4、修改rockchip_defconfig5、修改DTS七、声卡调试1、查看声卡注册信息2、使用tinycap/tinyplay录音和放音3、使用示波器观测八、修改HAL层1、修改默认capture/playba

rentong123的博客 2万+

给UICollectionView 添加sectionhead 和sectionfoot

Collectionview 的sectionhead 和footview 和uitableview不同 反倒和uitableviewcell 是一种写法需要注册cell 并要求使用固定的view类型- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementary

github_35041937的博客 4045

数据中心GPU芯片性能参数速查表(Nvidia+国产算力卡)

本文提供了一份数据中心GPU芯片性能参数速查表,涵盖Nvidia与国产算力卡两大阵营。文章详细解读了算力、显存、互连技术及功耗等关键性能指标,并对比了A100、H100、昇腾910B等主流型号,旨在帮助用户根据AI训练、推理等实际场景,做出高效的硬件选型与成本评估决策。

a0b1c2d3的专栏 836

iOS - UICollectionView的使用

一.简单介绍 UICollectionView 这个类是iOS6 新引进的API,它的布局更加灵活,简单来说就是多列的UITableView,那么UICollectionView的实现和UITableView的实现基本一样,也是存在datasource和delegate的,其中datasource为view提供数据源,告诉view要显示些什么东西以及如何显示它们,delegate提供一些样式

码农--xc 471

[Dify实战] Bug 自动归因与复现指南生成器-带绑定资源

摘要: 本文介绍如何利用Dify构建"Bug自动归因与复现指南生成器",解决研发测试中的常见痛点。该系统可自动解析Bug信息,结构化输出复现步骤、可能原因、修复建议和回归测试点,显著提升问题处理效率。文章详细阐述了方案流程、Prompt设计要点、输出模板及落地清单,并提供了RCA分析模板和标准复现步骤示例。通过统一Bug描述模板和自动化分析,该系统能有效降低人力成本,加速问题闭环,适用于持续迭代的中大型项目。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 294

土壤数据库辅助工具SPAW计算土壤导水率

首先点击打开根据之前的1比100土壤数据查表得到各个组分含量其中Field Capacity是田间持水量Matric Bulk Density是基质粒密度。

所有专家都曾始于新手 3443

怎样在UICollectionView中添加Header和footer

为什么80%的码农都做不了架构师?>>> ...

weixin_33875564的博客 583

RDKit | 基于Pytorch和RDKit建立QSAR模型

QSAR 定量构效方法(quantitative structure-activity relationship, QSAR)是应用最为广泛的药物设计方法。所谓定量构效方法就是通过一些数理统计方法建立其一系列化合物的生理活性或某种性质与其物理化学性质之间的定量关系,通过这些定量关系。可以预测化合物的生理活性或某些性质,指导我们设计出具有更高活性的化合物。 早在...

DrugOne 5078

为UICollectionView的每个section设置footerView和headerView

本文以headerView为例。实现效果如图:首先学习一下这个类UICollectionReusableView,这个类可以代表headerView和footerView。我们创建UICollectionReusableView这个类的子类来自定义headerView和footerView。如果要设置headerView和footerView,首先要注册: [self.collectionVi

闪星的博客 8800

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

UICollectionView的headerView、footerView使用以及与UITableView加载headerView、footerView的区别...

为什么80%的码农都做不了架构师?>>> ...

weixin_34130269的博客 811

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

UICollectionView Section 纯代码代码控制 HeaderView和FooterView的显示,uicollectionview

UICollectionView Section 纯代码代码控制 HeaderView和FooterView的显示,uicollectionview 如果你在想HeaderView和FooterView怎么用代码控制显示,说明你对Collectionview基本用法已经掌握(网上相关文章也很多),这里我就不在多介绍了。 UICollectionView显示Section好像不如UI

天道酬勤 523

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

UICollectionView headerView footerView

先用storyboard创建collectionView        可以勾选 storyboard中Section Header 和 Section Footer        或者 添加 Collection Reusable View  对应代码区就写方法  (Identifier)        需要声明一个类 继承  UICollectionReusableView

liRuixuesongXueqian的专栏 1023

swift中UICollectionView的使用(headerview/footerview/cell/model)

github学习地址:https://github.com/potato512/SYSwiftLearning 效果图 源码 // MARK: - 数据 func setLocalData() { self.mainArray = NSMutableArray() for number in 1...5 {

番薯大佬的专栏 1万+

UICollectionView添加Section HeaderView

UICollectionView Section 纯代码代码控制 HeaderView和FooterView的显示,uicollectionview 如果你在想HeaderView和FooterView怎么用代码控制显示,说明你对Collectionview基本用法已经掌握(网上相关文章也很多),这里我就不在多介绍了。 UICollectionView显示Section好像不如UI

刘小皓的博客 1万+

如何纯代码给UICollectionView添加HeaderView和FooterView

collectionView和table基本用法一样但是header和footer,就找不到方法了 自己找了好久网上也没个人写的就一个写的是用storyBoard写的 对于纯代码的可能不怎么太理解:storyBoard的创建方法链接:http://my.oschina.net/u/723760/blog/221525。 自己摸索的做出来了。下面纯代码的步骤: 1.如果要给你的collecti

ddc391565320的专栏 5391

UICollectionView Section 纯代码代码控制 HeaderView和FooterView的显示

如果你在想HeaderView和FooterView怎么用代码控制显示,说明你对C'o'l'le'c'ti'o'n

万花筒 邪灵噶 的博客 1万+

Swift 探索 UICollectionView 之 SupplementaryView 和 Decoration View

本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 HelloWorld杰少 即可关注。 写在开头 大家早上好,又到了每周和大家分享开发心得的时间啦!上周我分享了一篇关于 UICollectionView 自定义布局实现 Cover Flow 的文章(文章直通车),这也是我分享的关于 UICollectionView 系列的第四篇文章了,那今天我还是继续给大家带来 UICollectionView 开发系列的第五篇,这也是该系列计划写的最后一篇啦!当然,如果苹果开发者团队推出了关于 UIC.

shenjie12345678的专栏 2898

UICollectionView入门--使用系统UICollectionViewFlowLayout布局类

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://rainbownight.blog.51cto.com/1336585/1323780 初始化: //初始化布局类(UICollectionViewLayout的子类) UICollectionViewFlowLayout *fl = [[UICollec

SpeedBoy007的专栏 7万+

collectionView的注意事项

1:有headerView 和 footerView 做法: - (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)index

Running_allTheTime的博客 652

iOS UICollectionView、UICollectionViewCell和Header、Footer

为什么80%的码农都做不了架构师?>>> ...

weixin_34241036的博客 473

iOS开发--UICollectionView剖析(一)

初始化: //初始化布局类(UICollectionViewLayout的子类) UICollectionViewFlowLayout *fl = [[UICollectionViewFlowLayout alloc]init]; //初始化collectionView self.collectionView = [[UICollectionView alloc]initWithFr

junfeng09的博客 428
上一篇: UICollectionView-事件
下一篇: UICollectionView-添加自定义交互(如手势等)
berained
博客等级 码龄20年 14粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值