上一篇写了Core Data的入门,这篇会涉及两部分内容: NSFetchedResultsController的使用。 非标准数据类型的保存。...NSFetchedResultsController的使用 其实这个名字,会引起一定的歧义,光看名字,以为是一个普通的视图控制器,其实它并不继承自UIViewController类。...可能是UITableView在iOS开发中太常用了,所以专门造了这个类,和UITableView搭配使用。...,作为NSManagedObject类的子类,由CoreData直接保存; 如果不定义成实体,需要: 该自定义对象需要遵守NSCoding协议并实现required方法(initWithCoder:方法和...End 以上,就是Core Data中的NSFetchedResultsController的使用、以及非标准数据类型的保存方法。
CoreData相当于TableView和sqllite的纽带,说的专业一些就是映射,那么我们CoreData如何使用才会简化我们的操作呢?...下面将要介绍的才是这篇博客中的重点:我们如何使用CoreData才会让TableView爱上它呢?...和AppDelegate.m中进行相应的配置,并且同时还自动生成一个以本应用名命名的Data Model文件,我们可以在Data Model文件中添加我们的数据模型, 添加好的数据模型我们会在生成数据实体类时使用...和CoreData相爱的过程啦,如何在storyboard中对TableView的cell进行配置在这儿就不赘述了,下面给出我们要通过TableView和CoreData来实现什么功能。 ...来修改或着添加数据时,TableView上的内容是不跟着CoreData的变化而变化的,接下来要做的就是要绑定TableView和CoreData的关系。
平常我在业务开发中,绝大部分情况都是使用的UITableView,而UICollectionView则是在极少情况下才会去使用,这就导致了我对UICollectionView略感陌生。...UICollectionView和UITableView有相同的API设计理念——都是基于dataSource以及delegate驱动的。...UITableView中的row,对应到UICollectionView中就是item,因为一行可以展示多个cell,使用row(行)不能准确地表达。...其有三个比较重要的属性:minimumInteritemSpacing设置一行中两个Item之间的最小间距,minimumLineSpacing设置上下两行之间的最小间距,itemSize设置每一个item...,这是UITableView和UICollectionView的最大的不同。
子 View 的顺序和子 View 返回的数组中的位置有关(storyboard 中左侧的树形结构图中的先后顺序)。...文字换行 使用 storyboard:设置Lines为 0,然后在Text中用option+回车换行。 使用代码:label.numberOfLines = 0,设置文字的时候用\n换行。...使用代码:titleLabel.lineBreakMode = NSLineBreakByWordWrapping;,设置文字的时候用\n换行。...UIPickerView 选择器控件 数据源(DataSource) 代理(Delegate) 可以通过代码和拽线的方式设置数据源和代理。...通过它可以设置内容的大小、间距和方向等信息。
2) (3) 第 6 步:修改 获取要修改的 实体描述 设置对象属性 保存数据 (1)在tableview代理方法内实现修改数据 (2) 在viewDidLoad方法 中设置代理 第 7 步:删除...获取要删除的 实体描述 让管理上下文删除对象 —— 从内存删除 保存对数据的操作 —— 从数据库中删除 二、简介CoreData数据存储 Core Data 是 iOS SDK 里的一个很强大的框架...,允许程序员以面向对象的方式储存和管理数据 Core Data 不是一个数据库,不要用数据库的眼光去看待 Core Data Core Data 不仅是一个加载、保存数据的框架,还可以: 实体与 SQLite...2) (3) 第 6 步:修改 获取要修改的 实体描述 设置对象属性 保存数据 (1)在tableview代理方法内实现修改数据 (2) 在viewDidLoad方法 中设置代理 第 7 步:删除...获取要删除的 实体描述 让管理上下文删除对象 —— 从内存删除 保存对数据的操作 —— 从数据库中删除
multi_table.gif 如图所示的多表视图是一个很常用的东西,之前我是用UIScrollView和UITableViewController做的。...pagingEnabled = true collectionView?.bounces = false 这样滑动的时候就会有翻页的段落感,滑到边界的时候也不会有回弹效果。...然后要用 layout 控制布局,用最常用的 UICollectionViewFlowLayout 就行了,设置单元格的宽高,既然是翻页,宽肯定是跟屏幕等宽,高度就看你需求了,但是不要超过 collectionView...因为这边只是个 Demo,所以我直接在 cell 中显示cellData的值,那cellData 的值在哪里设置呢?...这样就完成了一个多表视图,实际项目一般会在 table 上方放个小滑块指示器什么的,也很简单,只要在cellForItemAtIndexPath方法中根据indexPath.section来设置滑块位置就好了
中的cell特性外,CollectionView中的Item大小和位置可以自由定义 4、通过layout布局回调的代理方法,可以动态的定制每个item的大小和collection的大体布局属性 5、更加强大一点...,完全自定义一套layout布局方案,可以实现意想不到的效果 这篇博客,我们主要讨论CollectionView使用原生layout的方法和相关属性,其他特点和更强的制定化,会在后面的博客中介绍 二、先来实现一个最简单的九宫格类布局...有些类似,又有些不同,因为tableView除了注册cell的方法外,还可以通过临时创建来做: //tableView在从复用池中取cell的时候,有如下两种方法 //使用这种方式如果复用池中无,是可以返回...,因此这里统一了从复用池中获取cell的方法,没有再提供可以返回nil的方式,并且在UICollectionView的回调代理中,只能使用从复用池中获取cell的方式进行cell的返回,其他方式会崩溃,...同样,如果内容的大小超出一屏,和tableView类似是可以进行视图滑动的。
今天深圳总公司的iOS大佬来广州,给我这个小白一对一讲解了很多iOS的相关知识,受益匪浅,就赶快记下来以免以后忘记啦~ iOS相比安卓最大的特点就是非开源,软件之间无法获取数据,对于要获取照片/麦克风等的时候均需要获取权限才有访问资格...一、关于iphoneX的适配问题 适配这个问题分为两种: 头部Nav:1、用苹果自己的组件(如左图);2、自定义写的(如右图) (如何区分:一个app的自带头部Nav只有一种颜色,且一般左边为返回,中部为文字...如下图,在微信中输入号码,点击后选择“呼叫”出现弹窗,这个弹窗是通讯录的window,无法更改样式。 ? view为看到的东西,view加在window上,可以有多个,也可以嵌套多层。...排列方式,主要有以下两种:tableview(左)和collectionview(右) ?...cell像是tableview/collectionview的细胞,很多cell组成了一个tableview/collectionview(如上图橙色部分)。 ?
TableView的功能就已经很强大了,,CollectionView就是TableView的升级版,其功能更为强大。...当创建自定义视图控制器或者展示控制器时,你可以重写默认的实现方法来调整你视图控制器的内容。例如,你可以使用该方法来调整子视图控制器的大小或位置。...如果你是使用编程的方式来创建集合视图控制器,那么将会自动创建一个已经配置好的collection view, 而这个collection view可以通过collectionView来进行访问。...2.当从nib文件或者Storyboard中加载集合视图时,集合视图的数据源(Data source)和代理对象(Delegate Object)是从nib或者Storyboard中获取的。...3.在代码中实现相应的代理,和TableView非常类似 (1) 返回Section个数的方法 Objective-C - (NSInteger)numberOfSectionsInCollectionView
TableView的功能就已经很强大了,,CollectionView就是TableView的升级版,其功能更为强大。...当创建自定义视图控制器或者展示控制器时,你可以重写默认的实现方法来调整你视图控制器的内容。例如,你可以使用该方法来调整子视图控制器的大小或位置。...2.当从nib文件或者Storyboard中加载集合视图时,集合视图的数据源(Data source)和代理对象(Delegate Object)是从nib或者Storyboard中获取的。...你也可以给Cell设置一个背景色便于区分。 ? (2) 设定Cell的默认宽高,具体如下图所示 ? (3) 设定Cell的重用标示符为"Cell"这个我们要在代码中使用 ?...3.在代码中实现相应的代理,和TableView非常类似 (1) 返回Section个数的方法 - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView
在一个tableView里面,tableView的数据源是表里面数据的条数,你通过表里面数据的条数去控制tableView的显示!...在CoreData中 有一个控制器 NSFetchedResultsController专门为了关联数据库和视图而生的,这个Demo是写好了的,需要的留言告诉我我发给你。...CoreData的使用: image.png 注意点和总结的地方: 先把里面会用到的类描述一下,知道它们是用来做什么,对应的都是那些东西。...实体描述,直接点其实就是库里面的表 NSFetchRequest 查询请求, 查 删 改 你都的简历请求,找到你要修改的那一条数据 NSPredicate 请求的条件,方法...,注意第一句的 @“CoreDataTest” 是你 CoreData文件的名字,后面的 @“momd”, 是你的.xcdatamodel文件,用数据模型编辑器编辑编译后为.momd或.mom文件,所以就写
iOS中,UICollectionView和UITableView已经有系统默认选中颜色设置,但是只有无色,蓝色,灰色,三种颜色设置,如果想要其他的颜色效果,我们可以自由自定义设置。...cell.selectionStyle = UITableViewCellSelectionStyleDefault; } 2.单元格自定义选中效果方案(一) 通用方案: 假设你已经正确实现其他代理方法,需要在table或collection...的返回cell的代理方法中作如下设置: cell.selectedBackgroundView = [[UIView alloc] initWithFrame:cell.frame]; cell.selectedBackgroundView.backgroundColor...else{ //非选中 self.backgroundColor = [UIColor whiteColor]; } } 4.小结 如你所见,不难发现,两个cell设置套路是一样的...注意的是,方案一和方案二不要重复设置。另外,二者择一的话,推荐方案一。
在直播卖货小程序源码中,一般都包含商品分类页面,如下图,那么这个页面是如何通过代码实现的呢?下面,小编以iOS版本的开发过程为例,来讲述下实现过程。...图片1.png 左边一级分类使用tableview来展示,右边的耳机分类使用collectionview来展示,主要就是实现一二级分类的联动。下面主要讲下点击和滑动。...1、左侧一级分类的点击实现 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath...的代理方法中更改一级分类的选中 ///collectionview将要加载头尾视图调用的方法 - (void)collectionView:(UICollectionView *)collectionView...已经加载完头尾视图调用的方法 - (void)collectionView:(UICollectionView *)collectionView didEndDisplayingSupplementaryView
currentImage 和 currentBackgroundImage 来获取。...这个方法可以获取到 UIAlertView 里面的 UITextField,你可以设置它的placeholder也可以获取到里面的值。...Paste_Image.png 不过这里是另一种实现思路,也挺不错的:iOS在cell中使用倒计时的处理方法 6.列表和网格视图的相互切换 ?...思路不错可以借鉴,大致如下: 点击按钮时切换按钮的图标同时设置 全局 isGrid 数值,并刷新 CollectionView。...根据全局的 isGrid 设置CollectionView 每个Cell的尺寸大小 SizeForItemAtIndexPath函数 在自定义CollectionViewCell中设置一个 是否为网格的属性
,创建可以展开/收起的轮廓界面,并向你介绍如何使用复合式界面的创建列表,并打造出带有网格视图、类似UITableView的界面。...总结出整体的大趋势是 去TableView化、推动DiffDataSource和支持更复杂的布局样式。...现在可以在iOS 13上使用。PencilKit使开发人员可以轻松地在其应用程序中集成绘图画布视图和工具包。 PencilKit可让您轻松快捷地将手绘内容整合到iOS或macOS应用中。...PencilKit为iOS应用程序提供了一个绘图环境,该环境可以从Apple Pencil或用户的手指中获取输入,并将其转换为您在iOS或macOS中显示的高质量图像。...WWDC20专门讲解了如何使用Xcode12中的Metal调试和性能优化工具找到图形问题 Discuss WWDC20 Session 10605 - Gain insights into your Metal
前言 Hello, 大家好,今天准备和大家继续分享如何利用 Swift 来实现一个网易云音乐的首页;上俩篇文章文章发布以后,我收获了不少小伙伴的关注与点赞,同时也得到了一些非常有用的建议,在这里再次感谢大家的认可...关于 headView 的实现方式,想必使用过 UITableView 的同学都不会陌生,可以通过下面的方法来实现: - (nullable UIView *)tableView:(UITableView...而且使用这俩个方法也无法为视图指定设置圆角的方位,是要左上角呢还是右下角? 上面讲到为视图设置圆角一不小心就会造成离屏渲染,那么这个问题该如何解决呢!...这里就需要来实现 UISearchResultsUpdating 和 UISearchBarDelegate 这俩个代理了,通过 UISearchBar 获取到输入值,然后在提供的数据源中查找,并 reload...() } 结尾 到此,使用 MVVM 来构建网易云音乐首页就差不多讲完了,我们再总结一下,在本文中我们主要讲解了如何来构建 UI 视图, 由于在我们首页里的 Cell 的样式有不同之处但也有相似的地方
Reusable Reusable是一个在swift下使用的开源库。利用protocol extension结合泛型提供了一个优雅的方案来dequeueReusableCell。...使用 根据类型获取cell让你的cell声明Reusable或NibReusable协议 //如果cell定义在xib中,声明NibReusableclass MyCustomCell: UITableViewCell...或者collectionView中register tableView.register(UINib.init(nibName: "MyCustomCell", bundle: nil), forCellWithReuseIdentifier...: "MyCustomCell") 粗暴的直接获取cell就可以啦: func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath...根据类型获取xib中的UIView对象 UIView对象声明NibLoadable协议。
中不用注册,但是collectionview中需要注册 //这里注册的类应该是自己所使用的cell的类,就是自定义的或者系统提供的 [self.colletionView registerClass...然后就是对其代理的设置,collectionview的代理有三个,除了和tableview相同的代理和数据源之外,还有一个布局的代理(UICollectionViewDelegateFlowLayout...),这里只设置了两个代理,就是数据源和处理事件的代理。...:(NSInteger)section{ return self.imageArray.count; } //collectionview的重用和tableview不同,后者可以不用重用,但是前者必须使用重用机制...那如何判断cell的rect是否在参数的rect之内呢?
3.3 分析及实现 3.3.1 需要添加埋点统计的地方 button 相关的点击事件 页面进入、页面推出 tableView 的点击 collectionView 的点击 手势相关事件 3.3.2 分析...对于 tableview 及 collectionview,我们 hook下setDelegate: 方法。...检测其有没有实现对应的点击代理,因为 tableView:didSelectRowAtIndexPath: 及 collectionView:didSelectItemAtIndexPath: 是 option...tableView、collectionView、手势的点击事件与上述实现方法类似。...3.3.5 埋点配置文件 埋点配置文件通过唯一标识锁定事件,可以使用 json 文件或 plist 文件,Demo 里就随便写了一些测试数据,LZDataTrack.json 是直接放在了项目资源里,实际项目是通过
NSOperation 的情况下,通过打印 获取当前线程。...---- 华丽分割线 ---->那如何回答这个问题!...-->用放大数倍数据源的方式(比如50倍),使用collectionView 的良好复用性,实现广告图片的无限轮播。 ?...正常执行顺序 正常的执行顺序-->viewWillAppear(or viewDidLoad) --> tableView Delegate ---- 使用主队列的异步-->实现数据源先执行,在执行viewWillAppear...用这种方法,我们可以先设置tableView cell的count,再在viewWillAppear中实现滚动,可以完美实现 --> 广告图片无限轮播效果~ ---- 如图有小白想知道,如何用collectionView
领取专属 10元无门槛券
手把手带您无忧上云