列表/集合视图
文章平均质量分 56
UICollectionView
kicinio
这个作者很懒,什么都没留下…
展开
-
简易考试控件开发 UICollectionView Swift版
前言:现在教育培训类、考试类软件都具备考试答题这样的功能,现提供一个非常简陋的示例以供参考。本示例以UICollectionView控件为底层,进行简陋开发。商业化的答题功能具备后台监控、粘贴板监控、网络异常监控、答题时长控制、多形式答题(填空、选择、判断、作图等)、答案提示、增值服务推送、数据库缓存读取、语音播报等诸多功能,以商业化封装SDK形式出现,本例就以纯手动滑动的判断题进行示例讲解。再次重申,本例是简陋开发,功能上以“怎么写着快”为主,仅提供思路。工程性与商业性、安全性不在考虑范围之内。某商原创 2021-09-24 22:48:36 · 252 阅读 · 0 评论 -
UICollectionView isPagingEnable 滑动偏移
问题:isPagingEnable = YES;或isPagingEnable = true属性设置后,滑动cell子项会有偏移,即每次在屏幕上cell显示的内容都是改变的原因:原因不明,还望有知道原理的大佬给解释下,不吝赐教。解决方法:增加下语句即可:flowLayout.minimumLineSpacing = 0.000001或:flowLayout.minimumLineSpacing = 0.000001f; 上述解决方法即增加流式布局的行最小间距,可完美解决。U原创 2021-09-23 22:16:34 · 987 阅读 · 0 评论 -
超简单方式实现 自适应文本宽度与FlowLayout Swift版本
效果:思路:代码:原创 2021-09-16 12:13:16 · 623 阅读 · 0 评论 -
浅析UITableView的Cell复用机制 dequeueReusableCell
前言:在承载大容量条目信息时,UITableView(或UICollectionView)的复用机制扮演者不可或缺的角色。iOS自动地为我们将cell从cell队列里入队和出队操作,本文将浅析这一机制。创建cell的方法:在实现了UITableViewDataSource这一协议后,回调方法 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell内我们可以进行原创 2021-07-05 23:06:36 · 1474 阅读 · 1 评论 -
UITableView 自适应Cell高度
前言:针对Cell内子控件的内容而自动调整cell的高度我们称之为Cell自适应高度。其实现原理就是tableView设置高度自适应、关键子控件的顶部与底部要与 contentView相约束即可。Cell子类:import UIKitimport SnapKitclass MyCell: UITableViewCell { var cellImageView: UIImageView! var cellContentLabel: UILabel! re原创 2021-06-28 10:20:15 · 1982 阅读 · 0 评论 -
独立UICollectionViewDataSource OC版
之前写过一篇关于独立DataSource Swift版的文章,使用MVC架构完成UICollectionView(独立UICollectionViewDataSource)。独立DS的优点很多,最直观的就是解耦了,还有就是可以使VC的体积迅速下降,不再动辄数百行了。下面直接上内容:Cell:MyCollectionViewCell.h:#import <UIKit/UIKit.h>#import <Foundation/Foundation.h>NS_ASSUME_NON原创 2021-06-21 16:14:49 · 161 阅读 · 0 评论 -
UITableView Cell子项内控件点击无反应
现象:Cell子项内点击控件无反应原因:iOS14不再通过self.addSubview()来分发控件的事件,而是通过self.contentView.addSubview()解决方法:一般看看是不是isUserInteractionEnabled这个属性设为了false。这种情况很少见,多半是下面这种情况。独立cell视图时,一般会写成“self.addSubview()”,这种写法在iOS13及以下是可以对子项内控件进行交互的,但现在iOS14需要改成“self.contentView.ad原创 2021-06-05 22:00:22 · 1044 阅读 · 0 评论 -
UICollectionView reloadData() 不刷新
问题:给UICollectionView添加一个下拉刷新控件(UIRefreshControl),添加完下拉刷新执行方法后下拉不刷新尝试方法:1:直接添加self.reloadInputViews()看到有人讲reloadData()方法不能直接调用,需要调用该方法,试过不行2:添加reloadSections()方法我看到这个方法时猜想应该可以。遂添加,添加完下拉刷新居然先闪屏?重要的是数据并没有刷新,弃之3:添加cell.setNeedsLayout()方法猜想这个方法也可以,都已经重新原创 2021-06-05 11:55:11 · 1485 阅读 · 1 评论 -
使用MVC架构完成UICollectionView(独立UICollectionViewDataSource)
前言:如何有效地解决系统的耦合性以及达到软件工程的工程性、规范性是一项重要的任务。对于UIKit而言,将数据源、cell子项布局、UICollectionView布局从ViewController里面抽出来是一条可行路。本文将以MVC架构为例,阐述一个较为完善的UICollectionView控件的开发。最终的成品如下图所示:Model层:Model层处于架构的最底层,为Controller层提供数据源支持,离开了它,系统要想增添或修改很难。在本文中,Model层提供UILabel及UIImageV原创 2021-05-24 17:21:07 · 232 阅读 · 1 评论 -
Swift 系统内置UITableViewCell样式及动态使用Cell
引言:系统内置的cell样式由UITableViewCell类提供(该类由 NSClassFromString反射而来),在原型模型或小型系统而言开发便捷性有很大帮助,使用时指定init方法的参数即可defalut样式:样式说明:一个ImageView在cell最左边;紧贴着该控件的是一个显示文字的Label,当然也可以添加辅助视图(这里为UISwitch)图示:代码:class DFViewController: UIViewController, UITableViewDelegate,原创 2021-05-23 16:42:47 · 2407 阅读 · 2 评论 -
iOS Swift版纯代码使用UICollectionView
前言:读者如果是以应对学校学习可移步至 iOS Swift版 UICollectionView的使用,这篇文章是基于StoryBoard实现的,难度很小;如果想要了解UICollectionView内的控件布局展示内容,请移步至UICollectionView cell子项布局的分析。下面的UICollectionView的实现是基于纯代码方式,内容对于初学者而言可能有些许繁琐,但总体来说还是比较简单的。正文:1: 准备图片数据这步是为了准备数据源,图片文件拖拽到Assets.xcassets文件夹原创 2021-03-01 20:18:15 · 1831 阅读 · 0 评论 -
UICollectionView不执行点击事件
问题描述:func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { print("INDEX : \(indexPath)")}上述方法并没有被执行,也没有打印任何东西原因:不出意外的华,出现这种问题是因为上面这个方法是被直接复制过来而不是一行行输入的。在Android Studio里面也有因为代码是直接复制过来的而报错的现象(直接复制过原创 2021-03-01 20:01:08 · 1273 阅读 · 0 评论 -
UICollectionView cell子项布局的分析
前言:UICollectionView弥补了UITabView的一些不足。但与Android平台上的RecyclerView而言,其显得似乎并没有RecyclerView那样随心所欲地操纵布局那样方便。本文将浅显地分析一下该问题。一:分析:决定cell子项布局布局的因素有哪些UICollectionView内放有cell,cell内部放有cell子项。如此层层嵌套,每个控件都将成为影响因素的一员。那么我们不难得出如下影响因素结论UICollectionView的宽和高cell的宽和高cell内原创 2020-11-21 21:35:53 · 825 阅读 · 0 评论 -
iOS Swift版 UICollectionView的使用
前言:Android中的RecyclerView在软件开发已经占到了重要地位。类似地iOS中也有对应的控件–UICOllectionView。有一点需要补充的是,网络上其它关于该控件的介绍使用时都没有提到类似RecyclerView的水平方向上的滚动(非九宫格布局),而本文将浅显地说明如何达到这一效果。在开始学习之前需要先要了解关于UICollection、cell、cell子项(cell内部我们要放入的控件)的概念。一:导入图片到Assets.xcassets文件夹这里为了方便演示用到了9张相同的图原创 2020-11-21 20:50:43 · 4584 阅读 · 0 评论